Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Recordset unter VBA (Access)

Empfohlene Antworten

Veröffentlicht

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:

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

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:

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.