Okay, also habe ich eine Datenbank in Access, und wenn ich ein Formular geöffnet habe (für eine Bewerbung), und klicken Sie auf eine Schaltfläche, wird dies ausgeführt Code:Me.OpenArgs gibt immer Null zurück, wenn versucht wird, ein neues Formular im Zugriff zu öffnen
Private Sub cmdAddDemo_Click()
DoCmd.OpenForm "sfrmAppDemographics", , , , , , txtApplID.Value
End Sub
Wo txtApplID ein Textfeld mit einem numerischen Wert für „Anwendungs-ID“ Nummer in einer Tabelle für Anwendungen gefüllt ist. Ich möchte, dass dieser Wert an das Formular "sfrmAppDemographics" übergeben wird, damit die korrekten demografischen Informationen für den Benutzer im zuvor genannten Formular für die Anwendung angezeigt werden.
Also, ich tat dies in den Code für die Demographie bilden:
Private Sub Form_Open(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Me.Recordset
If rs.RecordCount = 0 Then
rs.AddNew
rs!ApplID = Me.OpenArgs
rs.Update
Else
MsgBox Me.OpenArgs
End If
Me.Requery
End Sub
Also, die Idee ist, wenn es keine demographischen Daten ist, wird es eine neue mit dem erstellen ApplID von den übergebenen Openargs, und wenn demographische Daten für diesen Benutzer vorliegen, erscheint eine Meldung mit den Openargs (als Test, um zu sehen, ob es funktioniert). Ich bekomme IMMER einen Fehler "Laufzeitfehler '94': Ungültige Verwendung von Null" - in der Zeile für die MsgBox. (Weil die Datenbank Datensätze für demografische Daten enthält). Wenn ich die Else MsgBox Me.OpenArgs herausnehme, zeigt es nur die ersten demografischen Informationen in der db mit ApplID 1. Seltsam. Es scheint, ich bin nicht in der Lage, Pass oder die AppID über die OpenArgs-Funktionalität in dem Code Form_Open zu übergeben. Irgendeine Hilfe?
Das macht keinen Sinn für mich. Sie versuchen, das Re-Cord-Set basierend auf dem Re-Cord-Set des Formulars festzulegen? Es wurde möglicherweise noch nicht einmal geladen - und Sie fangen nicht für OpenArgs, es sei denn, es gibt keine Daten im Recordset - es überprüft nicht einmal die AppID. Setzen Sie ein 'Debug.Print Me.OpenArgs' an den Anfang Ihres Codes und es sollte zeigen, dass es an das Form_Open-Ereignis übergeben wird – dbmitch