Eingabe in Tabelle über recordset

Barry007

Grünschnabel
Hallo,

ich möchte ein Formular erstellen in dem ich in einem Textfeld eine Nummer (nicht die ID) eingeben und dann über ein Kombinationsfeld einen Beruf auswählen kann.

Dann soll der Beruf in dieser Tabelle zu diese Nummer abgespeichert werden über ein Update.


Die Tabelle hat folgende Spalten:

ID | Barcode (die Nummer) | Name |Vorname | ... | Beruf |

Die Tabelle ist auch schon von Anfang an gefüllt, soll dann aber um den Beruf ergänzt werden.


Kurze Erklärung warum die Nummer/Barcode nicht die ID ist:

Es gibt schon ein anderes Formular in dem eine Zeiterfassung erstellt wurde.
Da der Barcode hier als Text gescannt werden muss, da einige dieser Nummern mit 0 anfangen und Unterschiedlich sind, also keine Vorlaufenden Nummern sind.

Ich hab gelsen das dies nur mit dem recordset funktioniert, ich hab aber keinen genauen schimmer was ich da tun muss, mir ist klar das ich das update dann über eine sgl-anweisung angeben muss, aber nicht wie ich diese mit dem recordset verwende.

ich habe schon erfahrung mit mysgl und php aber das ist bedeutend einfacher, kann ich aber nicht für das programm verwenden bzw. funktionieren dann nicht alle dinge wie in access (ist doch etwas eingeschränkter)

Wenn mir jemand helfen kann, wär ich sehr dankbar drüber, dann versteh ich vielleicht das zusammen spiel von vba mit access bessser ist doch auch was anderes als in vb ein paar kleine programme zu erstellen.
 
In VBA Access ist es einfacher mit SQL zu arbeiten als in VB (und Access als DB).
Visual Basic:
Dim sql as String
sql = "INSERT INTO tabelle (feld1, Feld2) VALUES " & me.NumericFeld1 & ", '" & me.StringFeld2 & "'"
Call CurrentDb.Execute(sql)
 
muss ich nicht auch mit ner funktion feststellen zur welchen ID die Barcodenummer gehört damit der beruf auch immer in der richtigen zeile abgelegt wird?
 
Natürlich. Ich habe nur ein Besipeli gepostet für ein INSERT um zu zeigen wie man die Datenfunktionen ausführen kannst. Analog gehen UPDATe etc. auch. Du siehst da wie man auf Fleder des Formulars zugreifft, wie man Strings zusammensetzt.

Die ID musst du irgendwoher haben. Klar.
Woher? Sorry, ohne Code und ohne zu wissen wie dein Formular aufgebaut ist währe dies ein Rätselraten auf das ich im Moment grad kein Bock hab.
 
klar, kein ding.
ich probier noch etwas aus und wenn ich nicht weiterkomm post ich mal so was ich hab.

danke vielmals
 
Ich hab jetzt mal Probehalber eine neue Tabelle erstellt und ein Formular zwei Textfeldern und einem Button.

Wenn ich jetzt im Codefenster den Button auswähle und den folgenden Code von Ihnen einfüge um zumindest mal daten in eine Tabele zu schreiben funktioniert das so nicht.

Code:
Private Sub cmdBeruf_Click()

Dim sql As String
sql = "INSERT INTO PersBeruf (Barcode, Beruf)"
VALUES "& StringBarcode & ", '" & StringBeruf &"'"
Call CurrentDb.Execute(sql)

End Sub

auf was muss ich da genau achten ich kann doch nicht einfach nur den code verwenden um etwas in eine Tabelle einzufügen, ich dachte das geht nur mit diesem "recordset".
 
Welchen Datentyp hat das Feld "Barcode" ? Wenn es ein Textfeld ist, musst du es auch in enfache Anfürungszeichen setzen.

Ansonsten kopiere mal die SQL Anweisung, trage für die Variable einen Wert ein und führe sie als normale Abfrage aus. Mal sehen was da rauskommt.
 
wenn ich den code so eintrage kommt immer das fenster: "fehler beim kompilieren"

Code:
Private Sub cmdBeruf_Click()

Dim sql As String
sql = "INSERT INTO PersBeruf (Barcode, Beruf)"
VALUES "'" & StringBarcode & "', '" & StringBeruf & "'"
Call CurrentDb.Execute(sql)
End Sub

hab hier jetzt das hochkommata eigefügt, was meinst du mit die sql-anweisung kopieren und mit werten fühlen?

mit werten in dem code die dann auf knopfdruck eingefügt werden?

ist der code eigentlich überhaupt vollständig/ausreichend um die daten eintragen zu können?
 
SQL:
sql = "INSERT INTO PersBeruf (Barcode, Beruf) VALUES '" & StringBarcode & "', '" & StringBeruf & "'"

Du hattest ein Anführungszeichen zu viel drin.

Versuche entweder die Anweisung mal so auszuführen das du im Code direkt Werte einträgst:

SQL:
sql = "INSERT INTO PersBeruf (Barcode, Beruf) VALUES '0815-4711', 'Berufsbezeichnung'"

und den Code dann ausführst. Oder du kopierst dieses Beispiel so:

SQL:
INSERT INTO PersBeruf (Barcode, Beruf) VALUES '0815-4711', 'Berufsbezeichnung'

und dann erstellst du eine neue Abfrage (du arbeitest ja mit Access wenn ich mich nicht irre), fügst den kopierten Code ein und führst die Abfrage aus. Dann bekommst du eventuell eine Fehlermeldung die dir weiterhilft.

Ob der Code ausreichend ist, hängt zuletzt auch davon ab ob "StringBarcode" und "StringBeruf" gültige Werte enthalten. Die Frage ist auch ob die die Angaben irgendwie auf Richtigkeit oder so prüfen musst bevor du sie einträgst.
 
Zuletzt bearbeitet:
Alles andere hat auch nicht funktioniert, es kam dann ein Laufzeitfehler 3134 (Syntaxfehler in der INSERT INTO-Anweisung).

Ich hab jetzt zum testen ein neues Formular erstellt,

auf diesem Formular gibt es ein Textfeld für den Barcode (hier kommen Zahlen als String hinein ), ein Kombinationsfeld für die Berufe (ebenfalls String) und einen Button zum senden.

Das Kombinationsfeld bekommt die Inhalte aus einer Tabelle mit einer Spalte in der die Berufe aufgelistet sind: Tabelle heißt Berufe.

Dann gibt es eine weitere Tabelle "Pesonalberufe" in der es die Spalten Barcode und Beruf gibt.

Nun will ich eine Nummer eingeben in das Textfeld "Barcode" eingeben (zB. 0066), dann in dem Kombinationfeld einen Beruf auswählen und auf "senden" klicken.
Diese Daten sollen dann in der Tabelle "Personalberufe" gespeichert werden.

Code:
Private Sub cmdSenden_Click()
Dim strBC As String
Dim strBeruf As String
Dim strSQL As String

strSQL = "INSERT INTO Personalberufe (Barcode, Beruf) VALUES '" & strBC & "', '" & strBeruf & "'"

End Sub

Ich kann irgendwie nicht glauben das dieser Code ausreicht um die Daten zu speichern.

ich kenn mich mit Access wirklich nicht aus, ich versteh etwas von php aber das ist echt komisch, ich hab gehofft das ne Datenbank in Access zu erstellen einfacher ist.

Ich bin über jede Hilfe Dankbar
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück