Avatar billede macho Praktikant
22. februar 2010 - 20:29 Der er 5 kommentarer og
1 løsning

Fejl ved tjek efter record i tabel

Jeg forsøger at slå en record op i access-db med følgende:

*************
Sub TjekAccessDB()

    Dim db As Database, rs As Recordset, rsCheck As Recordset, strSQL As String, r As Long
    Set db = OpenDatabase("c:\computorcompanion\Client_Info.mdb")
    ' open the database
    Dim StrSSQL As String
    StrSSQL = ActiveDocument.FormFields("bkClientLName").Result

  strSQL = "SELECT * FROM ClientInfo WHERE LName = " & strSCode & ""
  Set rsCheck = db.OpenRecordset(strSQL)
  If Not rsCheck.BOF And Not rsCheck.EOF Then
        MsgBox ("Records already present")
        rsCheck.Close
        Set rsCheck = Nothing
      Exit Sub
  End If


    rsCheck.Close
    Set rsCheck = Nothing
*************

Jeg får følgende fejlmelding:

***
Run-time error '3061'
Der er for få parametre. Der var ventet 1.
***

Ved debug markeres denne linje:
Set rsCheck = db.OpenRecordset(strSQL)

Anyone?
Avatar billede macho Praktikant
22. februar 2010 - 20:31 #1
Lige en hurtig rettelse til ovenstående. Denne linje:

strSQL = "SELECT * FROM ClientInfo WHERE LName = " & strSCode & ""

ser retteligt sådan ud:

strSQL = "SELECT * FROM ClientInfo WHERE LName = " & StrSSQL & ""
Avatar billede arne_v Ekspert
23. februar 2010 - 02:37 #2
strSQL = "SELECT * FROM ClientInfo WHERE LName = '" & StrSSQL & "'"

måske.

(bedre parameters !)
Avatar billede macho Praktikant
23. februar 2010 - 08:25 #3
Det gør desværre ingen forskel.

Når jeg, under debug, kører musen hen over:
Set rsCheck får jeg: "rsCheck = Nothing".
Når jeg, stadig under debug, kører musen hen over:
db.OpenRecordset(strSQL) står der det forventede resultat, som der skal ledes efter i db'en. Altså:
strSQL = "SELECT * FROM ClientInfo WHERE LName = 'FORVENTET RESULTAT"

Jeg forstår det desværre ikke.
Avatar billede macho Praktikant
23. februar 2010 - 09:59 #4
Min egen fejl - jeg kører med reference til ADO 2.5, så jeg kan ikke også køre DAO. Møg...
Avatar billede macho Praktikant
23. februar 2010 - 10:36 #5
Så lykkedes det alligevel med denne ændring:

Fra dette:

Dim db As Database, rs As Recordset, rsCheck As Recordset, strSQL As String, r As Long

Til dette:

Dim db As Database, rs As DAO.Recordset, rsCheck As DAO.Recordset, strSQL As String, r As Long
Avatar billede macho Praktikant
23. februar 2010 - 10:36 #6
Lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester