amstyles
Goto Top

DAO.Recordset casten oder parsen

Hallo Forum User,

ich möchte ein SQL Statement in eine Variable speichern.
Hierbei handelt es sich um die Umgebung Access 2007 und die Programmiersprache VBA.

Ich habe bereits das Statement in eine Variable gespeichert, jedoch ist mir in dem Fall das Ergebnis wichtig.

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT COUNT (PROJEKT) FROM PRJVERWTSTADMIN_PRJV_PROJEKT")

Sollte einen nummerischen Wert zurückgeben. Diesen möchte ich abspeichern in einer Variable.

Grüße,
AMStyles

Content-ID: 175405

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

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

thaenhusen
thaenhusen 27.10.2011 um 14:57:52 Uhr
Goto Top
Moin.

Versuch mal.

Dim db as DAO.Database
Dim rs As DAO.Recordset
Dim counter as Integer

set db = currentDb

Set rs = CurrentDb.OpenRecordset("SELECT COUNT (PROJEKT) as cnt FROM PRJVERWTSTADMIN_PRJV_PROJEKT")  

if not rs.eof then
    counter = rs![cnt]
else
    counter = 0
end if

msgbox counter

Ungetestet.

HTH
MK
AMStyles
AMStyles 27.10.2011 um 15:10:50 Uhr
Goto Top
Merci, funktioniert Super!
Woher hast die Referenz?

AMStyles
thaenhusen
thaenhusen 27.10.2011 um 15:35:03 Uhr
Goto Top
Moin.

Merci, funktioniert Super!

Sehr schön.

Woher hast die Referenz?

Wie meinst Du das? Das sind Access-Grundlagen. Das habe ich mir vor Jahren mal angeeignet.
Woher ich das habe kann ich nicht mehr genau sagen...

Schöne Grüße
MK
AMStyles
AMStyles 27.10.2011 um 15:57:11 Uhr
Goto Top
Ok, dachte du könntest auf eine Webseite referenzieren.
Aber Danke nochmal face-wink
thaenhusen
thaenhusen 27.10.2011 um 16:32:15 Uhr
Goto Top
Moin.

Im Zweifel http://www.donkarl.com

Schöne Grüße
MK
AMStyles
AMStyles 02.11.2011 um 10:24:17 Uhr
Goto Top
Merci thaenhusen, weißt du auch wie man dies mit einem String als Rückgabe Wert löst?
Also mein SELECT Statement gibt mir ein String zurück, diesen möchte ich in eine Variable speichern.

Grüße,
AMStyles
thaenhusen
thaenhusen 02.11.2011 um 14:42:44 Uhr
Goto Top
Moin.

Versuch dann mal.

Dim db as DAO.Database
Dim rs As DAO.Recordset
Dim MeineVariable as String

set db = currentDb

Set rs = CurrentDb.OpenRecordset("SELECT StringFeld FROM PRJVERWTSTADMIN_PRJV_PROJEKT")  

if not rs.eof then
    MeineVariable = rs![StringFeld]
else
    MeineVariable = ""  
end if

msgbox MeineVariable 

'Das aufräumen nicht vergessen  
set rs = nothing
db.close 'wird bei currentDb nicht unbedingt gebraucht  

Ist also fast das gleiche, nur die Variable muss dann vom Typ String sein und nicht integer.

An der Stelle schon mal vorab, bei Integer und Long immer aufpassen, dass die Variable die
Werte auch "fassen" kann.

HTH
MK
AMStyles
AMStyles 10.11.2011 um 10:50:07 Uhr
Goto Top
Danke thaenhusen!

Was meinst du genau mit
if not rs.eof then 
    MeineVariable = rs![StringFeld] 

StringFeld?
thaenhusen
thaenhusen 10.11.2011 um 10:57:16 Uhr
Goto Top
Moin.

Set rs = CurrentDb.OpenRecordset("SELECT StringFeld FROM PRJVERWTSTADMIN_PRJV_PROJEKT")   

if not rs.eof then 
    MeineVariable = rs![StringFeld] 
end if

Das ist das StringFeld aus der Abfrage. Das muss Du an Deine Tabelle anpassen. Wenn es ein Feld Kunde gibt würde das Select Kunde und rs![Kunde] heißen.

HTH
MK