PDA

Vollständige Version anzeigen : Daten über Formular in Excel aus Access lesen


chrissy
19.09.2001, 09:28
Hallo
ich häng mal wieder an einem Problem :-(
Ich will über ein Formular einen Datensatz in Access nach Excel in ein Formular und eine Tabelle importieren.

Private Sub CommandButton_logg_Bestätigen_Click()

Dim MitarbeiterDB As Database
Dim MitarbeiterREC As Recordset


Set MitarbeiterDB = DBEngine.OpenDatabase("D:\Urlaubsplaner\Mitarbeiter.mdb")
Set MitarbeiterREC = MitarbeiterDB.OpenRecordset("Mitarbeiter", dbOpenDynaset)

'Jetzt hab ich die Datenbank geöffnet und möchte daraus einen Datensatz lesen, wo z.b. Name in der Datenbank mit Name in meinm Formular übereinstimmen.
'Das müsste eigentlich die SQL abfrage sein?
sql = "SELECT Name FROM Mitarbeiter Where Name = 'BoxName'"
'Jetzt würde ich gerne zum Test mir den Namen aus der Datenbank in einer Msgbox ausgeben lassen
MsgBox sql

'Dannach prüfen ob ich was gefunden habe und wenn ja den datensatz in einem neuen Formular anzeigen, oder werte in eine Tabelle schreiben.

Wäre echt nett wenn jemand meine Unwissenheit beseitigen könnte.

Thanx!

<p align="left"><font size="1" face="Century Gothic"><font color="#000000">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag ein Link entfernt.</font>

Günni
23.09.2001, 23:00
Am einfachsten öffnest Du das Recordset direkt mit dem SQL -- es ist sonst Blödsinn erst das Recordset mit dem Inhalt der ganzen Tabelle zu füllen, nur um es anschließend zu filtern:

Dim MitarbeiterDB As Database
Dim MitarbeiterREC As Recordset


Set MitarbeiterDB = DBEngine.OpenDatabase("D:\Urlaubsplaner\Mitarbeiter.mdb")


'Jetzt hab ich die Datenbank geöffnet und möchte daraus einen Datensatz lesen, wo z.b. Name in der Datenbank mit Name in meinm Formular übereinstimmen.
'Das müsste eigentlich die SQL abfrage sein?
sql = "SELECT Name FROM Mitarbeiter Where Name = 'BoxName'"


Set MitarbeiterREC = MitarbeiterDB.OpenRecordset("Mitarbeiter", dbOpenDynaset)

Anschließend kannst Du das Ergebnis-Recordset auswerten:

Do Until MitarbeiterREC.EOF

Set MitarbeiterREC = MitarbeiterDB.OpenRecordset("Mitarbeiter", dbOpenDynaset)
****' Hier kommt der Programmcode, der mit den Daten macht was Du willst
****MitarbeiterREC.MoveNext
Loop

Tipp nebenbei: wenn Du die Access Daten nur auslesen und nicht verändern willst, solltest Du das Recordset nicht als Dynaset sondern als Snapshot öffnen ... läuft bedeutend hurtiger

<hr>
Rückfragen am besten per Email, da ich nur sehr selten einen Beitrag zweimal lese
<img src="http://www.mgcss.de/bilder_allg/logo_mg2.gif" width="93" height="49">
<font color="#808080" size="2" face="Arial"><strong>
Mühldorfer Günter
Computer- und Software-Service </strong></font>


mg@mgcss.de
<a href="http://www.mgcss.de">www.mgcss.de</a></p>

[Dieser Beitrag wurde von Günni am 24.09.2001 editiert.]