Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

VBA funktioniert nicht im Unterformular

Begonnen von boehnli01, Januar 23, 2011, 13:44:40

⏪ vorheriges - nächstes ⏩

boehnli01

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.


DF6GL

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.

boehnli01

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


DF6GL

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?



boehnli01

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.