Hallo,
ich möchte im Berichtskopf eines Formulares beim Ereignis Formatieren einigen Textfeldern den entsprechenden Wert aus der Tabelle Auftraggeber zuweisen, die nur einen einzigen Datensatz enthält. Ich habe folgenden Code:
Private Sub Berichtskopf_Format(Cancel As Integer, FormatCount As Integer)
Dim Recs As DAO.Recordset
Set Recs = CurrentDb.OpenRecordset("Auftraggeber")
Recs.MoveFirst
'Hier soll den Feldern der Wert aus der Tabelle zugewiesen werden, z.B.:
'Me.FormFeld1 = Recs.Feld1
'oder so ähnlich
MsgBox ("Bin Drin!")
Recs.Close
Set Recs = Nothing
End Sub
Als Datenquelle für das Formular habe ich einen SQLString, der die Tabelle Auftraggeber nicht enthält und auch nicht enthalten soll.
Vielen Dank im Voraus für Eure Hilfe
Beate1953
Hallo,
Private Sub Berichtskopf_Format(Cancel As Integer, FormatCount As Integer)
Dim Recs As DAO.Recordset
Set Recs = CurrentDb.OpenRecordset("Auftraggeber",dbOpenSnapshot)
[s]Recs.MoveFirst[/s]
'Hier soll den Feldern der Wert aus der Tabelle zugewiesen werden, z.B.:
Me!FormFeld1 = Recs!Feld1
Me!FormFeld2 = Recs!Feld2
Recs.Close
Set Recs = Nothing
End Sub
Hallo,
besten Dank für die prompte Hilfe. Jetzt klappt es!!!
Ich habe immer Probleme, wann ich einen Punkt verwenden soll und wann ein Ausrufezeichen. Hat vielleicht jemand einen Link zu einer Seite, in der das erklärt wird?
Jedenfalls vielen Dank nochmal
Beate1953
Hallo,
Schnelltipp:
Punkt von Eigenschaften/Methoden, Ausrufezeichen vor selbsterstellten Objekten ..
Referenz auf Textfeld(-Wert) ("txtFeld1") im Formular ("MeinForm1"):
Ausführlich: ("Controls", "Item", "Value" sind Eigenschaften des Form-Objektes):
Forms("MeinForm1").Controls.Item("txtFeld1").Value
Kürzer Forms!MeinForm1!txtFeld1.Value
noch kürzer (wenn im besagten Formular verwendet und Default-Eigenschaften können weggelassen werden):
Me!txtFeld1
Referenz auf den Namen des akt. Formulares:
Me.Name
Selbiges gilt für prktisch alle Objekte, z. VB. bei einem Recordset-Objekt:
Set Rs = Currentdb.OpenRecordset ("select tblFeld1 , tblFeld2 from Tabelle1",dbOpensnapshot)
Msgbox rs.Fields("tblFeld1").Value
Msgbox rs!tblFeld1.Value
Msgbox rs!tblFeld1
oder für den Wert des ersten Feldes aus der Selectliste (im ersten Datensatz):
Msgbox rs(0)
als Einzeiler für den Wert aus dem ersten Feld in der Selectliste (und aus dem ersten DS in der Tabelle):
Set Rs = Currentdb.OpenRecordset ("select tblFeld1 , tblFeld2 from Tabelle1",dbOpensnapshot)(0)
Hallo,
vielen herzlichen Dank für die ausführliche Erläuterung. Jetzt habe ich es (glaube ich) verstanden.
Viele Grüße
Beate1953