Avatar billede mvm Nybegynder
19. marts 2001 - 23:05 Der er 6 kommentarer og
2 løsninger

openrecordset - men det gør den bare ikke :-(

jeg er meget nybegynder i denne verden og har følgende problem. Jeg har en tabel hvorfra jeg gerne vil \"hive\" en count(*) ud i en variabel jeg kan arbejde videre med.
jeg har forsøgt således:
    Dim dbs As Database
    Dim rst As Recordset
    Dim strSQL As String

   
    Set dbs = CurrentDb
    \'parameters [\" + str(medarbejder_ID) + \"] long,
    \'          [afholdt_status] boolean;
    strSQL = \" SELECT count(*) FROM aktuelfravaer  where [medarbejder_ID] = \" + Str(Medarbejder_ID) + \" \" _
            & \"and [afholdt_status] = false\"
    Set rst = dbs.OpenRecordset(strSQL)
    rst.MoveFirst
    Debug.Print rst.RecordCount
    rst.Close
    Set dbs = Nothing
men får svaret: typerne passer ikke sammen i linien set rst = dbs.open......... osv.
HJÆLP
Avatar billede jennemaan Nybegynder
20. marts 2001 - 10:55 #1
Antaget at medarbejder_id er en numerisk værdi:

dim adoConn
dim adoRST
Set adoConn=Createobject(\"ADODB.Connection\")
adoConn.Open \"Din_Database_DSN\"
Set adoRST=adoConn.Execute(\"Select Count(*) From aktuelfravaer Where [medarbejder_ID] = \" + Str(Medarbejder_ID) + \" \" _
            & \"and [afholdt_status] = false\")
Debug.Print adoRST.Fields(0).Value
adoRST.Close
adoConn.Close
Set adoRST=Nothing
Set adoConn=Nothing

Hvis medarbejde_id er en tekst skal du sætte pling om, dvs.
Set adoRST=adoConn.Execute(\"Select Count(*) From aktuelfravaer Where [medarbejder_ID] = \'\" + Str(Medarbejder_ID) + \"\' \" _
            & \"and [afholdt_status] = false\")


/Jennemaan
Avatar billede proaccess Nybegynder
20. marts 2001 - 12:57 #2
Prøv med denne SQL:

strSQL = \"SELECT count(*) FROM aktuelfravaer  where [medarbejder_ID] = \" & Medarbejder_ID & \" and NOT [afholdt_status]\"

HDH
ProAccess
Avatar billede mvm Nybegynder
20. marts 2001 - 20:22 #3
ProAccess>

Jeg får stadig samme fejltype - den dutter ikke.
Avatar billede mvm Nybegynder
20. marts 2001 - 20:23 #4
/jennemaan>

Jeg er altså nok meget grøn.

hvad er \"din_database_dsn\" ??
Avatar billede proaccess Nybegynder
20. marts 2001 - 20:46 #5
Så burde du kunne bruge denne ;-)

Private Sub Command1_Click()
  Dim ws As Workspace, db As Database, ra As Recordset
 
  \' Opret et Microsoft Jet Workspace-objekt.
  Set ws = CreateWorkspace(\"\", \"admin\", \"\", dbUseJet)

  \' Åbn et Database-objekt fra en gemt Microsoft Jet-database
  Set db = ws.OpenDatabase(\"C:\\Programmer\\DevStudio\\VB\\BIBLIO.MDB\")
  Set ra = db.OpenRecordset(\"SELECT COUNT(*) FROM AUTHORS\")
  MsgBox ra(0)
 
End Sub


Du skal igen huske at angive den rigtige sti til databasen, samt din SQL-String!
Avatar billede jennemaan Nybegynder
21. marts 2001 - 09:43 #6
din_database_dsn opretter du :

under windows NT 4 i kontrol panelet, <odbc datasources><System dsn><Tilføj>.
under windows 2000 under <Start><Programs><Administrative Tools><ODBC Data sources>

Begge steder vælger du så add, vælger access driveren, giver dsn\'en et navn (f.eks. medarbejderdb) og vælger stien til access filen.

Så kan du i din kode åbne databasen ved at skrive

adoConn.Open \"medarbejderdb\"

Alternativt skal du istedet for \"medarbejderdb\" angive en connectionstring (kan du læse om i msdn).

Den ville typisk hedde noget med:

adoConn.Open \"Driver={Microsoft Access (*.mdb)};dbq=c:\\minaccessfil.mdb;uid=;pw=\"

/Jennemaan
Avatar billede mvm Nybegynder
21. marts 2001 - 16:13 #7
Jeg har fået løst problemet andet steds fra.
Den oprindelige syntax viste sig at være rigtig, men den var galt med mine references!

Avatar billede mvm Nybegynder
21. marts 2001 - 16:14 #8
Jeg har valgt at dele pointene 50/50 som tak for indsatsen. håber det er ok!

tak for hjælpen.

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