Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: AccessRuntime am November 09, 2012, 09:16:19

Titel: Eintrag aus Listbox aktualisieren
Beitrag von: AccessRuntime am November 09, 2012, 09:16:19
Hallo,

ich stehe vor einem Problem. Ich habe mir ein Formular gebaut, dort eine Listbox erstellt und diese mittels Abfrage aus einer verknüpften SQL Datenbank befüllt. Funktioniert alles super. Aber jetzt will ich Datensätze ändern.. Dazu habe ich eine Schaltfläche erzeugt und folgenden Code hinterlegt:
Private Sub btnCardDelete_Click()
    If IsEmpty(Me.lstCard.Column(0)) Then
        MsgBox "Keine Karte gewählt!"
    Else
        SqlString = "Update karten_karten Set FK_Pers_Nr = NULL WHERE CardSN like " & Me.lstcard.Column(0)
        Debug.Print SqlString
        DBEngine(0)(0).Execute SqlString, dbFailOnError
    End If
    Me.lstCard.Requery
End Sub


Der scheint auch soweit Fehlerfrei zu sein. Aber immer wenn ich die Update Anweisung laufen lassen will, sagt mir Access ein anderer Nutzer greift darauf zu. Das kann nicht sein. Ich bin der einzige. Meine Vermutung ist das die Bindung in die Listbox ein Lock auf den Datensatz setzt. Und jetzt stellt sich mir die Frage wie kann ich den Datensatz nun aktualisieren?

mfg
Titel: Re: Eintrag aus Listbox aktualisieren
Beitrag von: database am November 09, 2012, 19:28:17
Hallo,

vorab ein paar Fragen ...:

.... Set FK_Pers_Nr = NULL  ....

Stellt FK_Pers_Nr etwa einen Fremdschlüssel in dieser Tabelle dar?

Wie lautet denn die Datenherkunft deines Listenfeldes? Zeig mal bitte den zugehörigen SQLString

Wie wird die Datenherkunft gebildet? SQL-String im Eigenschaftsfenster, VBA zuweisung oder eine Abfrage?

Verwendest du kein 'Option Explicit'?
Titel: Re: Eintrag aus Listbox aktualisieren
Beitrag von: AccessRuntime am November 12, 2012, 09:17:35
ZitatStellt FK_Pers_Nr etwa einen Fremdschlüssel in dieser Tabelle dar?
Ja, genau das.

ZitatWie lautet denn die Datenherkunft deines Listenfeldes? Zeig mal bitte den zugehörigen SQLString
SELECT karten_karten.CardSN, karten_karten.CardReadableKey, karten_karten.CardDefect, karten_karten.CardComment FROM karten_karten WHERE (((karten_karten.FK_Pers_Nr) Like [Formulare]![frmMain]![lstName]));

ZitatWie wird die Datenherkunft gebildet? SQL-String im Eigenschaftsfenster, VBA zuweisung oder eine Abfrage?
Die Abfrage steht im Eigenschaftenfeld Datensatzherkunft.

ZitatVerwendest du kein 'Option Explicit'?
Erwischt. Das ist mein erstes Projekt in Access seit Ewigkeiten, wusste gar nicht mehr das es die Option gibt ^^