PDA

Vollständige Version anzeigen : Listbox Doppelklick -> scheiben in Tabelle


leonid1969
09.05.2011, 13:18
Hallo, mit einem Formular habe ich ein Problem, zu dem ich schon ewig keine Lösung finde.

Aus einer Abfrage werden Daten in einer Listbox in einem Formular angezeigt.

Beim Doppelklick in die Listbox soll der Wert aus der Combobox Liste_Arbeit, das auch auf dem Formular ist in das Feld Rechnung der Tabelle tbl_Arbeitszeit eingetragen werden.

Private Sub Liste_Arbeit_DblClick(Cancel As Integer)
DoCmd.RunSQL "UPDATE tbl_Arbeitszeit SET Rechnung = 'Me.cmd_Firmenauswahl.Column(0)' Where ID_Arbeitszeit=" & Liste_Arbeit.Column(0) & ";"
Liste_Arbeit.Requery
End Sub

Beim Doppelklick erhalte ich die Meldung: "Sie beabsichtigen 1 Zeile zu aktualisieren" – super, genau das möchte ich.

Danach kommt die Meldung:
Access hat 1 Feld wegen Typumwandlungsfehlern nicht aktualisiert.
Eine Msg-Box bei Doppelklick in das Listenfeld zeigt mir den richtigen Wert an. Das Feld Rechnung in der Tabelle tbl_Arbeitszeit hat den Typ Zahl.

Wo liegt mein Fehler? Was muss ich ändern? Fällt Euch was dazu ein?
Vielen Dank

KBC
09.05.2011, 13:45
Ich würde vermuten, dass Du die & vergessen hast je nach dem ob Rechnung ein Textfeld oder ein Zahlwert ist

DoCmd.RunSQL "UPDATE tbl_Arbeitszeit SET Rechnung = ' & Me.cmd_Firmenauswahl.Column(0) & ' Where ID_Arbeitszeit=" & Liste_Arbeit.Column(0) & ";"

leonid1969
09.05.2011, 13:57
Das Feld Rechnung ist vom Typ Zahl (es handelt sich um einen Primärschlüssel, der aus einer anderen Tabelle abgefragt wird) - natürlich nicht der Primärschlüssel in der Tabelle tbl_Arbeitszeit.

Mit "&" habe ich die gleiche Fehlermeldung.

Dass ich Fehler beim setzen von "'" und "&" habe und hatte kann schon gut sein.

Habt Ihr noch eine Idee?

KBC
09.05.2011, 14:03
Bau Dir doch mal den SQL-String in einer Variablen (strSQL) zusammen und guck dir, bevor Du das ganze abschickst im Direktfenster an mit
print strSQL
Dann kannst Du sehen, was da in dem SQL-Statement steht

leonid1969
09.05.2011, 14:14
Kannst du mir das bitte etwas detaillierter erklären?
Wie erstelle ich den SQL-String?
Meine Access-Kenntnisse sind leider nur rudimentär.

Vielen Dank

KBC
09.05.2011, 14:28
Dim strSQL as string
strSQL = "UPDATE tbl_Arbeitszeit SET Rechnung = " & Me.cmd_Firmenauswahl.Column(0) & " Where ID_Arbeitszeit=" & Liste_Arbeit.Column(0) & ";"

docmd.runsql strSQL

Setz einen Haltepunkt auf die Docmd zeile, dann hält der Code dort an, bevor das Statement ausgeführt wird.
Öffne dann das Direktfenster und schreib darein: print strSQL

und Enter
Als Ergebnis siehst Du den Inhalt der Variablen.
Die kannst Du dann auch kopieren und ggf in der Abfrage-Umgebung mal testen

leonid1969
09.05.2011, 14:43
Super, jetzt habe ich was neues gelernt.
Meinen Fehler habe ich auch entdeckt. Ich habe "" mit '' verwechselt.
Danke für Eure Hilfe