Zum Inhalt springen

Recordset unter VBA (Access)


Empfohlene Beiträge

Geschrieben

Hallo Leute..

Ich hab folgende Funktion geschrieben und die ging auch immer (in allen anderen Programmen), aber jetzt auf einmal nicht mehr:

Public Function GetWert(ByVal sSQL As String) As String

    Dim dbs As Database, qdfTemp As QueryDef, rs As Recordset

    Set dbs = CurrentDb

    With dbs

        Set qdfTemp = .CreateQueryDef("", sSQL)

        Set rs = qdfTemp.OpenRecordset

        If Not rs.EOF Then

            If Not IsNull(rs.Fields(0).Value) Then

                GetWert = Trim(rs.Fields(0).Value)

            End If

        End If

    End With

End Function
sSQL ist vom Typ String und enthält die SQL-Anweisung Die Funktion gibt mir einen Wert als String zurück, den ich dann in eine Variable schreiben kann... Wenn ich mein Programm jetzt ausführe kommt folgende Fehlermeldung: "1 Parameter wurden erwartet, aber es wurden zu wenige übergeben" Der Fehler taucht in der Zeile
set rs = qdftemp.openrecordset

auf!

In der Access-Hilfe stehen ein paar optionale Argumente. Wenn ich die hinzufüge, bringt er eine andere Fehlermeldung:

"Datentypen stimmen nicht überein"

Ich brauch dringend ne Lösung!!!

Ich weiß echt nicht weiter :confused:

MFG

Druid :cool:

Geschrieben

Hi!

Ich glaube, Du musst beim Öffnen des Recordsets noch die Quelle angeben. Also in Deinem Fall die QueryDef oder das SQL. Quasi so:

---------------------------------------------------------------------------

Public Function GetWert(ByVal sSQL As String) As String

Dim dbs As Database, qdfTemp As QueryDef, rs As Recordset

Set dbs = CurrentDb

With dbs

'Set qdfTemp = .CreateQueryDef("", sSQL)

Set rs = .OpenRecordset(sSQL)

If Not rs.EOF Then

If Not IsNull(rs.Fields(0).Value) Then

GetWert = Trim(rs.Fields(0).Value)

End If

End If

End With

End Function

------------------------------------------------------------------------

Wenn ich Dich richtig verstehe willst Du prüfen, ob es einen Datensatz für Dein SQL gibt. Also brauchst Du doch nur das Recordset mit Deinem SQL zu öffnen.

Ich hoffe, ich konnte Dir helfen. Gruss

Geschrieben

Dankeschön.. aber daran lag es nicht..

In meiner SQL-Anweisung hab ich einen Fehler gemacht.

Ich hab einen Spaltennamen abgefragt, den es gar nicht gibt *schäm*

Aber Access kann mir da ja nicht sagen, dass ich nur die Spalte falsch geschrieben hab, sondern muss gleich mit kryptischen Fehlermeldungen beeindrucken *grrrr*

Aber trotzdem Danke für deine Hilfe ;)

MFG

Druid :cool:

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...