Ist das möglich?

Hallo Zusammen

Vieleicht könnt ihr mir ja helfen.
Ich versuche in den 1. Code den 2. so einzuarbeiten, das zuerst dei
Inputbox kommt und danach die MsgBox. Die große Herausfordrung für
mich ist, das der Text der Inputbox in den gleichen Datensatz [Spalte Komentar]der unter Code 1 erstellt wird eingefügt wird.
Mein stand im momemt, die Reihenfolge von MsgBox und Inputbox bekomme
ich hin, aber das Code 2 keinen neuen Datensatz anlegt, sondern in den gleichen schreibt, das fesselt mich schon seit 2 Tage am Rechner.
Bin für jeden Tip dankbar.
Gruß Oberlix 2
Code1:
Private Sub List0_Click()
Dim Msg, Response
Dim strInsert As String
Dim strLoesch As String

Msg = „Sind Sie Sicher das der gewählte Eintrag gelöscht werden soll?“
Style = vbYesNo
Title = „MsgBox Nachfrage“

Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then

strInsert = "Insert Into tbl_Geloescht " & _
"SELECT * From tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0)

CurrentDb.Execute strInsert, 128 'dbFailOnError

strLoesch = "DELETE FROM tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0)
CurrentDb.Execute strLoesch, 128 'dbFailOnError
Me!List0.Requery
End If

End Sub

Code2:
Dim strInput As String

strInput = InputBox(„Eingabe?“)
If strInput „“ Then
CurrentDb.Execute "INSERT INTO Tabelle (Feldname) " & _
„VALUES (’“ & strInput & „’)“, 128
End If

Hallo Oberlix2

Vieleicht könnt ihr mir ja helfen.

ich will es mal versuchen: in der Hilfe von Access steht:

INSERT INTO-Anweisung (Beispiel)

Dieses Beispiel wählt alle Datensätze aus der hypothetischen Tabelle „Neue Kunden“ aus und fügt sie der Tabelle „Kunden“ hinzu. Wenn einzelne Spalten nicht angegeben werden, müssen die Spaltennamen in der SELECT-Tabelle genau mit denen in der INSERT INTO-Tabelle übereinstimmen.

Sub InsertIntoX1()
Dim dbs As Database

’ Pfad für „Nordwind“ auf Ihrem Computer
’ in dieser Zeile bearbeiten.

Set dbs = OpenDatabase(„Nordwind.mdb“)

’ Alle Datensätze in der Tabelle „Neue Kunden“ auswählen
’ und sie der Tabelle „Kunden“ hinzufügen.

dbs.Execute " INSERT INTO Kunden " _
& "SELECT * " _
& „FROM [Neue Kunden];“

>>>> man achte auf das -> ; >>> man achte auf das -> ; „“ Then

CurrentDb.Execute "INSERT INTO Tabelle (Feldname) " &
_
„VALUES (’“ & strInput & „’)“, 128
End If

könnte es sein, dass du einfach das -> ;

Hallo Netwolf

Nun steh ich hier ich armer Wicht und finde meinen Fehler nicht.
Zu deutsch schon wieder 3 Stunden rum und keinen Schritt weiter.
Dieser verd… Code macht was er will!
Ich glaube ich bekomme es nicht hin.
Noch immer fügt das Ding mir einen 2.Datensatz ein und füllt diesen
mit dem Inhalt der Inputbox, was ja auch richtig ist, aber warum nicht
in den Datensatz den Code 1 erstellt.

Netwolf bekommst du die ineinander. Bin kurz davor mein Computer zu zerstören.
Gruß Oberlix 2

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Sicher ist das möglich!
Hallo Oberlix 2

Vieleicht könnt ihr mir ja helfen.
Ich versuche in den 1. Code den 2. so einzuarbeiten, das zuerst dei
Inputbox kommt und danach die MsgBox. Die große Herausfordrung für
mich ist, das der Text der Inputbox in den gleichen Datensatz
[Spalte Komentar]der unter Code 1 erstellt wird eingefügt wird.

Zuerst versuche ich mal, Dich, bzw. das, was Dein „Code“ machen soll, zu verstehen:
Du möchtest einen Datensatz, ausgewählt durch „List0“ auf einem Formular (das „Click“-Ereignis scheint mir nicht glücklich gewählt, aber das ist ja hier wohl nicht das Problem), löschen. Bevor der Datensatz gelöscht wird, soll er in einer zweiten Tabelle (zusammen mit einem Kommentar, eingegeben über eine „Inputbox“) gespeichert werden. Soweit richtig?

Mein stand im momemt, die Reihenfolge von MsgBox und Inputbox bekomme
ich hin, aber das Code 2 keinen neuen Datensatz anlegt,
sondern in den gleichen schreibt, das fesselt mich schon seit
2 Tage am Rechner.

Ein „Insert“ ist ein „Insert“ ist ein „Insert“… d.h. mit „Insert“ wird immer ein neuer Datensatz gespeichert. Das Zauberwort heisst „Update“.

Bin für jeden Tip dankbar.

Ich werd’s versuchen:

Private Sub List0\_Click()
Dim strInput As String

If MsgBox("Sind Sie sicher, dass der gewählte Eintrag gelöscht werden soll?", \_
 vbYesNo, "MsgBox Nachfrage") = vbYes Then
 CurrentDb.Execute "Insert Into tbl\_Geloescht " & \_
 "SELECT \* From tbl\_Bericht " & \_
 "WHERE ID = " & Me!List0.Column(0) & ";"

 strInput = InputBox("Eingabe Kommentar")
 If strInput "" Then
 CurrentDb.Execute "UPDATE tbl\_Geloescht " & \_
 "SET [Kommentar] = '" & strInput & "' " & \_
 "WHERE ID = " & Me!List0.Column(0) & ";"
 End If

 CurrentDb.Execute "DELETE FROM tbl\_Bericht " & \_
 "WHERE ID = " & Me!List0.Column(0) & ";"

 Me!List0.Requery
End If

End Sub

Ich hoffe, ich habe mich nicht vertippt (Code ist ungetestet), sollte aber das machen, was Du willst (wenn ich Dich richtig verstanden habe).

Gruss
Peter

Code1:
Private Sub List0_Click()
Dim Msg, Response
Dim strInsert As String
Dim strLoesch As String

Msg = „Sind Sie Sicher das der gewählte Eintrag gelöscht
werden soll?“
Style = vbYesNo
Title = „MsgBox Nachfrage“

Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then

strInsert = "Insert Into tbl_Geloescht " & _
"SELECT * From tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0)

CurrentDb.Execute strInsert, 128 'dbFailOnError

strLoesch = "DELETE FROM tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0)
CurrentDb.Execute strLoesch, 128 'dbFailOnError
Me!List0.Requery
End If

End Sub

Code2:
Dim strInput As String

strInput = InputBox(„Eingabe?“)
If strInput „“ Then
CurrentDb.Execute "INSERT INTO Tabelle (Feldname) " &
_
„VALUES (’“ & strInput & „’)“, 128
End If

Hallo Peter

Leider bekomme ich einen Fehler Code mit der Bezeichnung 3078

Das Microsft Datenbankmodul findet die Eingangstabelle oder Abfrage
DELTE FROM tbl_Bericht WHERE ID2=;’ nicht.Stellen Sie sicher, dass sie existiert und der Name richtig eingegeben ist.

Wo kann der Fehler liegen?
Gruß Oberlix2

Hallo Oberlix 2

Vieleicht könnt ihr mir ja helfen.
Ich versuche in den 1. Code den 2. so einzuarbeiten, das zuerst dei
Inputbox kommt und danach die MsgBox. Die große Herausfordrung für
mich ist, das der Text der Inputbox in den gleichen Datensatz
[Spalte Komentar]der unter Code 1 erstellt wird eingefügt wird.

Zuerst versuche ich mal, Dich, bzw. das, was Dein „Code“
machen soll, zu verstehen:
Du möchtest einen Datensatz, ausgewählt durch „List0“ auf
einem Formular (das „Click“-Ereignis scheint mir nicht
glücklich gewählt, aber das ist ja hier wohl nicht das
Problem), löschen. Bevor der Datensatz gelöscht wird, soll er
in einer zweiten Tabelle (zusammen mit einem Kommentar,
eingegeben über eine „Inputbox“) gespeichert werden. Soweit
richtig?

Mein stand im momemt, die Reihenfolge von MsgBox und Inputbox bekomme
ich hin, aber das Code 2 keinen neuen Datensatz anlegt,
sondern in den gleichen schreibt, das fesselt mich schon seit
2 Tage am Rechner.

Ein „Insert“ ist ein „Insert“ ist ein „Insert“… d.h. mit
„Insert“ wird immer ein neuer
Datensatz gespeichert. Das Zauberwort heisst „Update“.

Bin für jeden Tip dankbar.

Ich werd’s versuchen:

Private Sub List0_Click()
Dim strInput As String

If MsgBox(„Sind Sie sicher, dass der gewählte Eintrag gelöscht
werden soll?“, _
vbYesNo, „MsgBox Nachfrage“) = vbYes Then
CurrentDb.Execute "Insert Into tbl_Geloescht " & _
"SELECT * From tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0) & „;“

strInput = InputBox(„Eingabe Kommentar“)
If strInput „“ Then
CurrentDb.Execute "UPDATE tbl_Geloescht " & _
„SET [Kommentar] = '“ & strInput & "’
" & _
"WHERE ID = " & Me!List0.Column(0) &
„;“
End If

CurrentDb.Execute "DELETE FROM tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0) & „;“

Me!List0.Requery
End If

End Sub

Ich hoffe, ich habe mich nicht vertippt (Code ist ungetestet),
sollte aber das machen, was Du willst (wenn ich Dich richtig
verstanden habe).

Gruss
Peter

Hallo Oberlix 2

Leider bekomme ich einen Fehler Code mit der Bezeichnung 3078

Das Microsft Datenbankmodul findet die Eingangstabelle oder Abfrage
DELTE FROM tbl_Bericht WHERE ID2=;’ nicht.Stellen Sie sicher,
dass sie existiert und der Name richtig eingegeben ist.

Wo kann der Fehler liegen?

Das muss „DEL E TE“ und nicht „DELTE“ heissen.

Gruss
Peter

Hallo Peter

Jetzt klappt es mit dem Löschereignis aber in der Tabelle
tbl_Gelöscht wird weder der im Listenfeld gelöschte Datensatz noch das Kommentar eingetragen.

Sorry
Gruß Oberlix 2

Hallo Oberlix 2

Jetzt klappt es mit dem Löschereignis

Na schön :smile:

aber in der Tabelle tbl_Gelöscht wird weder der im Listenfeld
gelöschte Datensatz noch das Kommentar eingetragen.

Und keine Fehlermeldung?
Überprüfe noch einmal alle Tabellen- und Attributnamen; ebenso die Where-Klauseln, die müssen in allen drei Fällen (Insert, Update, Delete) genau gleich lauten.

Sorry

Ebenso :-/

Gruss
Peter

Hallo Peter

Das ist Stand der Dinge:
Dim strInput As String

If MsgBox(„Sind Sie Sicher das der gewählte Eintrag gelöscht werden soll?“, _
vbYesNo, „MsgBox Nachfrage“) = vbYes Then
strInsert = "Insert Into tbl_Geloescht " & _
"SELECT * From tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0) & „;“
strInput = InputBox(„Eingabe Kommentar“)
If strInput „“ Then
CurrentDb.Execute "UPDATE tbl_Geloescht " & _
„Set[Kommentar] = '“ & strInput & " ’ " & _
"WHERE ID = " & Me!List0.Column(0) & „;“
End If
CurrentDb.Execute "DELETE FROM tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0) & „;“
Me!List0.Requery

End If

End Sub

Fehlermeldung: Negativ.
Gruß Oberlix 2

Hallo Oberlix 2

Das ist Stand der Dinge:
Dim strInput As String

If MsgBox(„Sind Sie Sicher das der gewählte Eintrag gelöscht
werden soll?“, _
vbYesNo, „MsgBox Nachfrage“) = vbYes Then
strInsert = "Insert Into tbl_Geloescht " & _
"SELECT * From tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0) & „;“

Und weiter? Den „Insert“ einer Variablen zuzuweisen ist ja nett, aber wer führt ihn denn aus? Sieh’ Dir nochmal meine erste Antwort an. Statt „strInsert =“ musst Du „CurrentDb.Execute“ schreiben, oder anschliessend „CurrentDb.Execute strInsert“, und schon klappt’s auch mit dem Nachbarn :wink:
N.B.: Alle Variablen deklarieren ist guter Stil und hilft Fehler zu vermeiden (hat jetzt nichts mit dem aktuellen Problem zu tun); „Option Explicit“ im Modul angeben.

strInput = InputBox(„Eingabe Kommentar“)
If strInput „“ Then
CurrentDb.Execute "UPDATE tbl_Geloescht " & _
„Set[Kommentar] = '“ & strInput & " ’ " & _
"WHERE ID = " & Me!List0.Column(0) & „;“
End If
CurrentDb.Execute "DELETE FROM tbl_Bericht " & _
"WHERE ID = " & Me!List0.Column(0) & „;“
Me!List0.Requery

End If

End Sub

Fehlermeldung: Negativ.

Ja…

Gruss
Peter

Ja da brat mir doch einer ne’n Storch!
Wie ist das Insert denn dahin gekommen???
Mann, mann Zeit fürs Bett!
Klappt jetzt SUUUUUPER!!!
Ich danke dir Tausend mal.

Mit vielen Grüßen
Oberlix 2

Ja da brat mir doch einer ne’n Storch!

Solang’s keinen gedünsteten Hinkelstein als Beilage gibt…

Wie ist das Insert denn dahin gekommen???

Maybe someone inserted it?

Mann, mann Zeit fürs Bett!

Das auch.

Klappt jetzt SUUUUUPER!!!

Schön :smile:

Ich danke dir Tausend mal.

Gerne!

Gruss
Peter