Avatar billede mundt Nybegynder
20. september 2001 - 09:58 Der er 5 kommentarer og
1 løsning

Hvordan finder jeg en post

Jeg har fundet en sub til at finde en post med som ser sådan ud:

Sub FindPost()
   
    Dim dbs As Database, rst As Recordset
    Dim strCriteria As String

    \' Returner referencen til den aktuelle database.
    Set dbs = CurrentDb
    \' Definer søgekriterierne.
    strCriteria = \"110\"
    \' Opret et Recordset-objekt af typen dynamisk udvalg baseret på tabellen Ordrer.
    Set rst = dbs.OpenRecordset(\"_tblQueryDetail\", dbOpenDynaset)
    \' Find den første tilsvarende post.

    rst.FindFirst (strCriteria)
   
   

\' Kontroller, om posten bliver fundet.
    If rst.NoMatch Then
        MsgBox \"Der er ikke fundet nogen post.\"
    Else
        \' Find andre tilsvarende poster.
        Do Until rst.NoMatch
            Debug.Print rst!qrySQL
            rst.FindNext strCriteria
        Loop
    End If
    rst.Close
    Set dbs = Nothing
End Sub

Når jeg kører den får jeg af vide at udtrykket:

    rst.FindFirst (strCriteria)

er invalidt (fejl 3001).

Kan det være fordi at den tabelkollenne jeg søger i er et langt heltal?

René
Avatar billede cuddles Nybegynder
20. september 2001 - 10:01 #1
Ja, det er højst sandsynligt derfor, da Access er meget streng, når det kommer til typer.

Prøv med:

rst.FindFirst(CLng(strCriteria))
Avatar billede mundt Nybegynder
20. september 2001 - 10:05 #2
Jeg får stadig samme fejl.

Jeg har flere kollonner i min tabel men det skulle vel ikke ha\' noget at sige?
Avatar billede cuddles Nybegynder
20. september 2001 - 10:16 #3
Jeg har ikke den vilde erfaring med FindFirst, men det kan da muligvis være, at du skal sætte kolonnenavnet ind et sted (evt, før kriteriet).
Avatar billede cuddles Nybegynder
20. september 2001 - 10:19 #4
Prøv evt. med:

rst.Find(CLng(strCriteria))
Avatar billede mundt Nybegynder
20. september 2001 - 10:24 #5
Det virker heller ikke, men jeg har fundet en anden måde at klare det på - se nedenstående function:

Public Function RetrieveSQL(ObjectID As String) As String
   
    Dim dbs As Database
    Dim rst As Recordset
    Dim strCriteria As String
   
    \' Returner referencen til den aktuelle database.
    Set dbs = CurrentDb
    \' Definerer søgekriterie.
    strCriteria = \"Select qrySql from _tblQueryDetail where objid = \" & ObjectID
    \' Opret et Recordset-objekt af typen dynamisk udvalg baseret på ovenstående
    \' søgekriterie.
    Set rst = dbs.OpenRecordset(strCriteria, dbOpenDynaset)
   
    Debug.Print rst!qrySQL

    rst.Close
    Set dbs = Nothing
   
End Function


Ellers tak for hjælpen.

mvh

René
Avatar billede cuddles Nybegynder
20. september 2001 - 10:32 #6
Tak for pointene :-)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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