Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: boehnli01 am Januar 23, 2011, 13:44:40

Titel: VBA funktioniert nicht im Unterformular
Beitrag von: boehnli01 am Januar 23, 2011, 13:44:40
Guten Tag,

Ich bin Access/VBA Anfänger und habe folgendes Problem: 
Der unten erwähnte Befehl funktioniert wunderbar  aus dem Unteformular, aber sobald ich das Unterformular in das Hauptformular miteinbeziehe funktioniert es nicht mehr. Das Unterformular ist nicht mit dem Haupformular gelinkt. Haupformular heisst "Main" und unterformular heisst "Usedate".  Er sagt mir immer er könne das form "Usedate" nicht finden. Ich nehme an das ich irgendwie das Hauptformular in den in den Befehl miteinbeziehen muss, aber jeglich Versuche haben fehlgeschlagen.

Private Sub Command17_Click()
On Error GoTo Err_Command17_Click

    Dim stDocName As String

    stDocName = "mac_updateappendrequisitions"
    DoCmd.RunMacro stDocName
   
   
  Let Forms![Usedate]![DateReq] = Now()
 

Exit_Command17_Click:
    Exit Sub

Err_Command17_Click:
    MsgBox Err.Description
    Resume Exit_Command17_Click
   
End Sub

Im voraus vielen Dank für Eure HIlfe.

Titel: Re: VBA funktioniert nicht im Unterformular
Beitrag von: DF6GL am Januar 23, 2011, 13:54:13
Hallo,


etwa so:



Private Sub Command17_Click()
On Error GoTo Err_Command17_Click

    Dim stDocName As String

    stDocName = "mac_updateappendrequisitions"
    DoCmd.RunMacro stDocName    ' verzichte auf Makros!
   
   
Let Forms![Usedate]![DateReq] = Now() 
Me!Usedate![DateReq] = Now()  ' wobei hier der aktive Datensatz (der, der den Fokus besitzt), herangezogen wird.
Exit_Command17_Click:
    Exit Sub

Err_Command17_Click:
    MsgBox Err.Description
    Resume Exit_Command17_Click
   
End Sub



wenn "Usedate" der Name des UFO-Steuerelementes ist, das das (Unter-) Formular anzeigt.

"Me" ist die Referenz auf das akt. Form, in dem der Code läuft (und entspricht in diesem Fall "Forms![Main]")


Wenn nur das akt. Datum und keine Uhrzeit gebraucht wird, sollte anstatt "Now()" "Date" verwendet werden.
Titel: Re: VBA funktioniert nicht im Unterformular
Beitrag von: boehnli01 am Januar 23, 2011, 14:39:07
Zuerst mal vielen dank für die schnelle Antwort. Leider funktioniert es immer noch nicht (habe wahrscheinlich etwas wichtiges vergessen zu erwähnen):

Me!Usedate![DateReq] = Now()  ' wobei hier der aktive Datensatz (der, der den Fokus besitzt), herangezogen wird.
UFO besteht nur aus einem Datensatz und ist nicht gelinkt zum Haupformular

wenn "Usedate" der Name des UFO-Steuerelementes ist, das das (Unter-) Formular anzeigt:
"Usedate" ist der name des Unterformulares. Steuerelement wäre ja der befehlsknopf (Command17) ?

"Me" ist die Referenz auf das akt. Form, in dem der Code läuft (und entspricht in diesem Fall "Forms![Main]")
genau, UFO "Usedate" ist ja im Haupformular "Main" eingebaut --> ungelinkt, muss aber so sein.

Wenn nur das akt. Datum und keine Uhrzeit gebraucht wird, sollte anstatt "Now()" "Date" verwendet werden.
ist Ok. Brauche die Zeit ebenfalls

Titel: Re: VBA funktioniert nicht im Unterformular
Beitrag von: DF6GL am Januar 23, 2011, 16:44:08
Hallo,

a)  ob "gelinkt" oder nicht  (Eigenschaften "Verknüpfen von/nach") , ist hier egal .

b) Ein UFO-Steuerelement ist kein Befehlsknopf(Schaltfläche), sondern eben ein UFO-St.El., das aus der Toolbox auf ein Formular gezogen werden kann und einen Namen hat (Eigenschaft "Name") . Dieses UFO-St.El. hat nun die Fähigkeit, ein beliebiges Formular anzuzeigen (UFO-Eigenschaft "Herkunftsobjekt" mit dem Namen des Formulares versehen. Formularname und UFO-St.-El.-Name können gleich oder unterschiedlich lauten)

Reden wir hier über ein solches UFO-St.-Element, oder ist das "Unterformular" lediglich ein anderes, gleichzeitig geöffnetes Form?

c) diese Aussage deutet auf ein UFO-Steuerelement hin.


d) ok, dann Now() verwenden.


WAS funktioniert nun nicht?


Poste nochmal mit Copy&paste Deinen Code.

Wird der auch ausgeführt, wenn die Schaltfläche angeklickt wird?
--> Haltepunkt an den Codeanfang setzen und mit Einzelschritt die Prozedur durchfahren...


Was macht das Makro?


Titel: Re: VBA funktioniert nicht im Unterformular
Beitrag von: boehnli01 am Januar 24, 2011, 20:18:25
Hallo,

Habe es so geschafft:
Me.UserReq = GetNTUser()
    Me.DateReq = Now()

Uebrigens, makro beeinhaltet ein append-/updatequery. Makro nicht gut ?

Vielen dank für die Hilfe.