Problem OpenArgs = NULL

08/02/2011 - 11:01 von Herbert Fidesser | Report spam
Hallo NG,

also, ich rufe aus einem Kombinationsfeld mit dem Ereignis "NotInList"
ein Popup-Formular auf, wo der Datensatz angelegt werden kann. Es gibt
mehrere Kombifelder, die das Popup-Formular aufrufen. Ich übergebe
daher einen Textstring als OpenArgs, der das aufrufende Kombifeld
identifiziert:
DoCmd.OpenForm "popFirma", acNormal, , , acFormAdd, , "Konzern"
Im PopupFormuar kommt der OpenArgs-String aber nicht an:

Private ctl As String
Private Sub Form_Open(Cancel As Integer)
ctl = Me.OpenArgs
End Sub

ctl ist immer NULL.

Wo liegt mein Fehler?
Danke für Hinweise.
Beste Grüße
Herbert
 

Lesen sie die antworten

#1 Karl Donaubauer
08/02/2011 - 12:36 | Warnen spam
Herbert Fidesser wrote:
also, ich rufe aus einem Kombinationsfeld mit dem Ereignis "NotInList"
ein Popup-Formular auf, wo der Datensatz angelegt werden kann. Es gibt
mehrere Kombifelder, die das Popup-Formular aufrufen. Ich übergebe
daher einen Textstring als OpenArgs, der das aufrufende Kombifeld
identifiziert:
DoCmd.OpenForm "popFirma", acNormal, , , acFormAdd, , "Konzern"
Im PopupFormuar kommt der OpenArgs-String aber nicht an:

Private ctl As String
Private Sub Form_Open(Cancel As Integer)
ctl = Me.OpenArgs
End Sub

ctl ist immer NULL.



Wie prüfst du das denn?
Was machst du mit ctl?
Eine Stringvariable kann nàmlich gar nicht NULL sein.

Warum deklarierst du sie auf Modulebene?

"ctl" verwendet man üblicherweise für eine Control-Variable.
Für einen String könnte/sollte das z.B. so aussehen:

Private Sub Form_Open(Cancel As Integer)

Dim strCtlName As String

If Not IsNull(Me.OpenArgs) Then
strCtlName = Me.OpenArgs
Else
'irgendwas sinniges bzw.
Exit Sub
End If

'danach kannst du die Variable z.B. so weiter verwenden
Me(strCtlName).SetFocus

End Sub

Servus
Karl
*********
Access-FAQ: http://www.donkarl.com
4. SQL Server-Entwickler-Konferenz, 12./13.2.2011, Nürnberg

Ähnliche fragen