aldarin
Goto Top

Abruf von Daten aus einer Accessdatenbank und weitere Verarbeitung in einem Bericht

Daten aus einer Accessdatenbank abrufen und in der selben Datenbank weiterverarbeiten und innerhalb eines Berichts in ein Label schreiben.

Hallo,

ich habe folgendes Problem:

Ich möchte Daten aus einer Accessdatenbank abrufen (ein einziges Datenbankfeld, was zu einer gewissen ID gehören soll) und diese Daten dann mit einen vorgegeben Text umgeben und anschließend in ein Label schreiben.

Die Vorgehensweise habe ich mir so vorgestellt.

1. Ich stelle eine Verbindung zu der Datenbank an sich (es ist die selbe Datenbank in der das Script liegen soll) auf.
2. Ich rufe das Feld ab und speicher es in einem String1.
3. Ich packe dann String2 und String3 UM den String... Quasi String4 = String2 & String1 & String3
4. Ich schreibe den String4 in das gewünschte Label

Das ist alles was es machen soll.

Irgendwelche Ansätze, Ideen, Hilfen?
Ich bin noch sehr neu auf dem Gebiet von VBA...

Wenn es jemand schonmal gemacht hat, wäre ich über ein Script oder Hilfe sehr dankbar.

Mit freundlichen Grüßen,
Daniel

Content-ID: 62058

Url: https://administrator.de/contentid/62058

Ausgedruckt am: 24.11.2024 um 13:11 Uhr

AndreasHoster
AndreasHoster 22.06.2007 um 11:43:47 Uhr
Goto Top
Wenn es unbedingt ein Label und VBA sein muß (Beim Ereignis Öffnen Eintragen):

Private Sub Report_Open(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Application.CurrentDb().OpenRecordset("Select ID from Tabelle1 where ID='xxx'")
rs.MoveFirst
Me.Name_Bezeichnungsfeld.Caption = "String1" & rs!ID & "String2"
rs.Close
End Sub
Aldarin
Aldarin 22.06.2007 um 12:52:10 Uhr
Goto Top
Hey Andreas,

soweit hab ich das ganze eingebaut und angepasst, jedoch kriege ich die Sub nicht als Ereignis zu "Beim Öffnen".

Habe ich etwas falsch gemacht? In dem Menü bei den Berichteigenschaften kann ich die Sub nicht finden und nicht auswählen. Sie existiert aber im Visual Basic Editor von Access.

Grüße,
Daniel
AndreasHoster
AndreasHoster 22.06.2007 um 13:40:41 Uhr
Goto Top
Wenn Du in der Entwurfsansicht des Bericht bist, dann die Eigenschaften des Berichts öffnen (Rechtsklick in der oberen Linken Ecke wo die Lineale zusammenstossen) oder irgendwo mir Rechtsklick -> Eigenschaften und dann Bericht auswählen.
Dann den Reiter Ereignis auswählen, dort den Eintrag beim Öffnen suchen.
Dort im Drop-Down Feld [Ereignisprozedur] auswählen, dann dahinter die Schaltfläche mit den ... anklicken.
Es geht der VBA Editor auf und der Bereich Private Sub Report_open .... End Sub sollte dann schon drinstehen. Dann noch den Code reinkopieren (falls der noch fehlt).
Dann Speichern.
Fertig.
Aldarin
Aldarin 22.06.2007 um 14:03:27 Uhr
Goto Top
Hallo Andreas,

ich hab das Script wie folgt angepasst:

Option Compare Database

Private Sub Report_Open(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Application.CurrentDb().OpenRecordset("Select Neben_Sonstiges from T_Hauptdaten where ID=Forms!Form_F_Menu_Haupt.ID")
rs.MoveFirst
Me.Bezeichnungsfeld159.Caption = "Text1 " & rs!Neben_Sonstiges & " Text2."
rs.Close
End Sub

Hab es auch in die Ereignisprozedur eingetragen.
Wenn ich die Tabelle nun öffne bekomm ich folgenden Fehler:

Laufzeitfehler '3061':
1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.

Beim klick auf Debuggen wurde mir folgende Zeile angezeigt:
Set rs = Application.CurrentDb().OpenRecordset("Select Neben_Sonstiges from T_Hauptdaten where ID=Forms!Form_F_Menu_Haupt.ID")

Wenn ich die Abfrage (auf der der Rest des Berichts basiert) öffne wird mir jedoch bei ID sowie Neben_Sonstiges angezeigt und beide sind mit Werten gefüllt.
Stimmt evtl. etwas nicht mit der Abfrage: where ID=Forms!Form_F_Menu_Haupt.ID ?
Die Abfrage soll die ID aus dem Hauptformular (F_Menu_Haupt) aus dem Feld ID zum Vergleichen abrufen.

Grüße,
Daniel
AndreasHoster
AndreasHoster 22.06.2007 um 15:01:58 Uhr
Goto Top
Solange Forms!Form_F_Menu_Haupt.ID innerhalb der " steht, wird es nicht ausgewertet, sondern so als String übergeben.
Außerdem habe ich aus Vsersehen zuviel Klammern bei CurrentDB gemacht.
Also eher so:
Set rs = Application.CurrentDb.OpenRecordset("Select Neben_Sonstiges from T_Hauptdaten where ID=" & Forms!Form_F_Menu_Haupt.ID)
Aldarin
Aldarin 25.06.2007 um 09:33:03 Uhr
Goto Top
Hey Andreas,

danke für deine Hilfe.
Es funktioniert nun. Nur das ich bei Forms!Form_F_Menu_Haupt das Form_ wegmachen musste. Obwohl er es als Form_F_Menu_Haupt in Visual Basic gespeichert hat. Dennoch vielen Dank. Ich werde das ganze nun noch anpassen und dalnn läuft das! Super!

Vielen Dank,
Daniel