Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Schnitzl am März 22, 2012, 14:56:19

Titel: Ausführen einer Aktualisierungsabfrage
Beitrag von: Schnitzl am März 22, 2012, 14:56:19
Hallo Formunutzer,

ich erlerne mich gerade am Einsatz von VBA in einer Datenbank, da ich zuvor Makros und VBA in einer DB verwendet habe und nun alles in VBA ausführen möchte. In einer Schlüsselverwaltung möchte ich beim Speichern eines Vorgangs unten stehende Prozedur ausführen. Folge der Aktionen: Speichern, zu neuem Datensatz gehen, Formular schließen, Formular öffen. Ich schließe und öffne das Formular deswegen, da mit dem Öffnen eine Aktualisierungsabfrage ausgeführt wird, auf der eine weitere Abrage ausgeführt wird, die mir die freien Schlüssel anzeigt.

Private Sub cmdSpeichern_Click()

    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.GoToRecord , "", acNewRec
    DoCmd.Close acForm, "frmSchluesselverleih", acSaveYes
    DoCmd.OpenForm , "frmSchluesselverleih", acNormal, "", "", , acNormal

End Sub

Nun kommt die Fehlermeldung "Fehler beim Kompilieren: Argument nicht optional"

Kann mir einer mit einem Rat weiterhelfen? Oder fehlen noch Erläuterungen meinerseits?
Vielen Dank schon mal für eure Hilfe
Gruß Schnitzl
Titel: Re: Ausführen einer Aktualisierungsabfrage
Beitrag von: Schnitzl am März 22, 2012, 14:58:43
Vielleicht noch der Code für die Aktualisierungsabfrage:

Private Sub Form_Open(Cancel As Integer)

    DoCmd.SetWarnings False
    DoCmd.OpenQuery "qryVerlaufSchluesselvergabeAktuell", acViewNormal, acEdit
    DoCmd.SetWarnings True
    DoCmd.OpenQuery "qrySchluesselFrei", acViewNormal, acReadOnly
    DoCmd.RepaintObject acQuery, "qrySchluesselFrei"
    DoCmd.OpenForm "frmSchluesselverleih", acNormal, "", "", , acNormal
    DoCmd.GoToRecord acForm, "frmSchluesselverleih", acNewRec
   
End Sub
Titel: Re: Ausführen einer Aktualisierungsabfrage
Beitrag von: DF6GL am März 22, 2012, 22:41:22
Hallo,


ohjeh....

Ich rate, das ganze Konzept zu überdenken, Vermutlich ist die ganze Anstrengung überflüssig, weil allein mit einem Kombifeld (unter Verwendung der vorhandenen Auswahl-Abfrage)  leicht die im Moment freien Schlüssel angezeigt werden können und demzufolge einer von diesen bei einer neuen Ausleihung ausgewählt werden kann.

Explizit Datensätze speichern, Formular schliessen und wieder öffnen , dabei eine Abfrage zur Anzeige von freien Schlüsseln zu benutzen, ist wie durch die Brust ins Auge geschossen und trotzdem verfehlt....


Titel: Re: Ausführen einer Aktualisierungsabfrage
Beitrag von: Schnitzl am März 27, 2012, 13:25:49
Hallo,

danke für die Antwort, nur komme ich mit der Umsetzung nicht ganz zurecht, vielleicht könntest du mir es bitte nochmal konkret an meinem beispiel erklären. Also ich habe wie folgt:

eine tabelle
tblSchluesselverleih (SchluesselverleihID, SchluesselF_ID, EmpfaengerF_ID, AusgeberF_ID, DatumVergabe, DatumRueckgabeFrist, DatumRueckgabe)

Darauf beruht mein Formular zu Schluesselvergabe (frmSchluesselverleih)

in diesem habe ich ein Kombifeld das zur Auswahl der Schluessel da ist. Datenherkunft qrySchluesselfrei, Diese beruht auf tblSchluessel (Schluessel ID, Schluesselnummer, Schliessanlage, ...) mit der Bedingung, dass der Schluessel nicht in der Tabelle tblSchluesselverleihAktuell enthalten is, welche auf der Aktualisierungsabfrage qryVerlaufSchluesselvergabeAktuell beruht. Dantenherkunft tblSchluesselverleih, mit Datumskriterium)

Einzeln laufen die Prozesse auch, mein Problem ist nur, dass sobald ich einen Schluessel im Formular einer Person zugewiesen habe oder das Formular öffne, die Abfragen aktualisiert werden sollen, damit kein Schlüssel doppelt vergeben werden kann.

Eine Idee?

Ich kann heut Abend auch mal die DB hochladen, wenn du oder jemand anderes zeit hätte sie sich mal anzuschaun?

Gruß Schnitzl
Titel: Re: Ausführen einer Aktualisierungsabfrage
Beitrag von: Schnitzl am März 27, 2012, 14:15:44
Problem gelöst! Das Problem dass ich die Fehlermeldung bekam, war dass die Abfrage qrySchluesselfrei noch im Hintergrund geöffnet war und wenn ich von der Entwurfsansicht in die Formularansicht wechseln wollte, bekam ich die Fehelrmeldung und der Debugger wurde geöffnet...