2016-10-03 5 views
-4

Ich versuche, einen Zugang Benutzerformular Taste, um eine Aktualisierungsabfrage auszuführen. Die Parameter ich habe, sind:Wie ein Access-Benutzerformular erhält einen vorhandenen Datensatz zu aktualisieren

 Invoice number (should update Current ICB.Invoice number) 
     Material Code (should update Current ICB.Material Code) 
     Amount USD (Should update current ICB.Amount USD) 
     Username (Should update current ICB.Owner) 
    Vendor Code (Should update current ICB.Vendor code) 
Record Number (Should = current ICB.ID) 

ich eine Taste auf dem Formular für einen Datensatz zu überprüfen, verwenden möchten, die die gleiche Satznummer hat und aktualisieren Sie die Felder oben aufgeführten mit den Werten in der Userform eingegeben. Ich würde eine Aktualisierungsabfrage verwenden, aber das Schreiben von SQL in VBA ist nicht meine Stärke. Irgendwelche Ideen?

+1

Haben Sie einen Code zum Posten? Und Sie brauchen es nicht in VBA zu tun, werden Sie eine Abfrage für sie haben könnte. –

+0

Versuchen Sie 'Refresh'. Wenn es nicht hilft, versuchen Sie 'Requery'. –

+0

Sprechen Sie über eine Access-Formular oder ein Büro „user“ Form, die nicht an eine Datenquelle gebunden werden können? –

Antwort

0

Im OnClick-Ereignis der Schaltfläche, tun Sie etwas wie folgt aus:

Dim db as Database 
Dim rec as Recordset 

Set db = CurrentDb 
Set rec = db.OpenRecordset("Select * from MyTable where RecordNumber = " & ICB.ID & "") 

rec.Edit 
rec("InvoiceNumber") = ICB.Invoice_number 
rec("MaterialCode") = ICB.Material_Code 
etc... 
rec.update 

rec.close 

Ihre aktuelle Tabellen- und Feldnamen verwenden, aber das ist die allgemeine Idee.

Wenn Sie unbedingt darauf bestehen, auf eine Abfrage verwenden, dann müssen Sie die SQL-in-Code in einer ähnlichen Art und Weise zu schreiben und DoCmd.RunSQL verwenden. Etwas wie dieses:

txtSQL = "UPDATE MyTable SET InvoiceNumber = " & ICB.Invoice_number & ", " & _ 
      " MaterialCode = " & ICB.Material_Code & "" & _ 
      etc... 
      " WHERE RecordNumber = " & ICB.ID & "" 
DoCmd.RunSQL txtSQL 

Dies setzt voraus, dass Sie nur Ganzzahlen verwenden. Wenn Sie die Daten als Text speichern, müssen sie in einfache Anführungszeichen gesetzt werden.

" MaterialCode = '" & ICB.Material_Code & "'" & _ 
Verwandte Themen