Avatar billede kagge Nybegynder
10. oktober 2002 - 10:36 Der er 12 kommentarer og
1 løsning

Statistik - flere søgestrenge

Lige et spørgsmål til eksperterne:

Jeg har en asp-side hvorpå jeg vil have forskellige statistikker fremvist på baggrund af de data, som jeg har liggende i en Access-database.

Statistiksiden skal altså kunne køre flere SQL-søgestrenge for at kunne hive alle mulige forskellige statistikker frem på siden.

Men hvordan laver man flere SQL-søgestrenge på en asp-side og er der problemer med at lave flere søgestrenge på én side, når det er en Access-database man bruger?

Håber der er nogle som kan hjælpe.
Avatar billede hbhansen Nybegynder
10. oktober 2002 - 10:39 #1
Det er der ikke nogle problemer i du skal bare huske kun at åbne til databasen en gang.
Derefter gør du følgende:
sql = conn.execute("SELECT ..");
Og løber sql igennem
srs = conn.execute("SELECT");

En anden mulighed er at du samler sql søgesætningerne i en sætning, men det kræver lidt kendskab til SQL
Avatar billede kagge Nybegynder
10. oktober 2002 - 11:00 #2
-> hbhansen

Sidder lige og leger lidt med det for at se om jeg kan få det til at virke.

Vender lige tilbage om lidt
Avatar billede kagge Nybegynder
10. oktober 2002 - 11:21 #3
-> hbhansen

Jeg plejer at åbne databasen på nedenstående måde: Jeg har prøvet at indsætte nogle søgestrenge, men får en fejl når jeg kører siden:

Provider error '80004002'

No such interface supported

/stat.asp, line 152

Kan du se hvad der er galt og om jeg har indsat din kode rigtigt. Det er jeg nemlig ikke helt sikker på!!

CONST adOpenStatic = 3, adLockReadOnly = 1, adCmdText = &H0001
Dim connectionString, CONN_USER, CONN_PASS
Dim recordSet
Dim forbindelse
Dim strSQL
Dim strSQL1
Dim strSQL2
Dim i
Dim c1

connectionString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("xxx.mdb")
Set forbindelse = Server.CreateObject("ADODB.Connection")
Set recordSet = Server.CreateObject("ADODB.recordSet")
forbindelse.Open connectionString, CONN_USER, CONN_PASS


strSQL = forbindelse.execute("SELECT * from Data d WHERE d.Status = 'Afventer' ORDER BY d.Spm_dato DESC")

strSQL1 = forbindelse.execute("SELECT * from Data d WHERE d.Status = 'Lukket sag' ORDER BY d.Spm_dato DESC")

strSQL2 = forbindelse.execute("SELECT * from Data d WHERE d.Status = 'Videresendt til...' ORDER BY d.Spm_dato DESC")

recordSet.Open strSQL, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

  response.write "Der er ialt registreret " & recordSet.RecordCount & " spørgsmål/svar i databasen med status afventer!</p>" & vbCrLf

recordSet.Close

recordSet.Open strSQL1, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

  response.write "Der er ialt registreret " & recordSet.RecordCount & " spørgsmål/svar i databasen med status lukket sag!</p>" & vbCrLf

recordSet.Close

recordSet.Open strSQL2, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

  response.write "Der er ialt registreret " & recordSet.RecordCount & " spørgsmål/svar i databasen med status videresendt til!</p>" & vbCrLf

recordSet.Close
Set recordSet = Nothing

forbindelse.close

Set forbindelse = Nothing
Avatar billede hbhansen Nybegynder
10. oktober 2002 - 11:24 #4
Hvilken linie er siger den der er fejl?
Avatar billede kagge Nybegynder
10. oktober 2002 - 11:26 #5
linie 152 er den her:

recordSet.Open strSQL, forbindelse, adOpenStatic, adLockReadOnly, adCmdText
Avatar billede kagge Nybegynder
10. oktober 2002 - 11:27 #6
Jeg fjernede desuden ; efter søgestrengene da den ellers brokkede sig over dem. Det ved jeg ikke om har nogen betydning
Avatar billede hbhansen Nybegynder
10. oktober 2002 - 11:29 #7
Det kunne være du skulle prøve at flytte sql sætninger ned efter hver recordset :
strSQL = forbindelse.execute("SELECT * from Data d WHERE d.Status = 'Afventer' ORDER BY d.Spm_dato DESC")

recordSet.Open strSQL, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

  response.write "Der er ialt registreret " & recordSet.RecordCount & " spørgsmål/svar i databasen med status afventer!</p>" & vbCrLf

recordSet.Close

strSQL1 = forbindelse.execute("SELECT * from Data d WHERE d.Status = 'Lukket sag' ORDER BY d.Spm_dato DESC")

recordSet.Open strSQL1, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

  response.write "Der er ialt registreret " & recordSet.RecordCount & " spørgsmål/svar i databasen med status lukket sag!</p>" & vbCrLf

recordSet.Close

strSQL2 = forbindelse.execute("SELECT * from Data d WHERE d.Status = 'Videresendt til...' ORDER BY d.Spm_dato DESC")
recordSet.Open strSQL2, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

  response.write "Der er ialt registreret " & recordSet.RecordCount & " spørgsmål/svar i databasen med status videresendt til!</p>" & vbCrLf

recordSet.Close
Avatar billede hbhansen Nybegynder
10. oktober 2002 - 11:30 #8
det kan også være fordi du bruger forbindelse.execute jeg tror nok det skal bruges sammen men en anden måde at åbne database på, jeg har det et eller andet sted jeg leder lige så poster jeg det !
Avatar billede hbhansen Nybegynder
10. oktober 2002 - 11:32 #9
Sådanne her får jeg mit til at virke !

'åbn dbase conn
connect="DSN=connectiondb;uid=;pwd="
Set Conn = Server.CreateObject("ADODB.Connection")
DBSti = "DBQ=" & Server.Mappath("xxx.mdb")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBSti

Set sql = Conn.Execute("SELECT ...")

do while (not sql.eof)
...
sql.movenext
loop
Avatar billede kagge Nybegynder
10. oktober 2002 - 11:49 #10
Jeg tror desværre ikke helt jeg forstår. Hvad vil du have ind i løkken og skal alle sql-søgestrengene stå efter hinanden.

Vil du ikke lige være flink og uddybe det en smule..
Avatar billede hbhansen Nybegynder
10. oktober 2002 - 11:55 #11
Du skal bare glemme do while løkken jeg havde ikke set at du brugte recordCount men det duer vel også hvis du bruger mit eksempel:

'åbn dbase conn
connect="DSN=connectiondb;uid=;pwd="
Set Conn = Server.CreateObject("ADODB.Connection")
DBSti = "DBQ=" & Server.Mappath("xxx.mdb")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBSti

Set sql = Conn.Execute("SELECT ...")

response.write "Der er ialt registreret " & sql.RecordCount & " spørgsmål/svar i databasen med status lukket sag!</p>" & vbCrLf
Avatar billede kagge Nybegynder
10. oktober 2002 - 12:06 #12
Jeg går til frokost nu og så må jeg lige kigge nærmere på det.

Tak for hjælpen :)
Avatar billede kagge Nybegynder
10. oktober 2002 - 13:51 #13
Så har jeg endelig fundet ud af det med inspiration fra din kode.

Tusind 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