Neuigkeiten:

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

Mobiles Hauptmenü

Textfeldern per Recordset Werte zuweisen

Begonnen von Beate1953, November 18, 2013, 16:24:49

⏪ vorheriges - nächstes ⏩

Beate1953

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

DF6GL

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


Beate1953

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

DF6GL

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)

Beate1953

Hallo,

vielen herzlichen Dank für die ausführliche Erläuterung. Jetzt habe ich es (glaube ich) verstanden.

Viele Grüße
Beate1953