Zum Inhalt springen

Recordset unter VBA (Access)


Druid

Empfohlene Beiträge

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...