Avatar billede fqthjoe Nybegynder
30. december 2001 - 19:38 Der er 8 kommentarer og
2 løsninger

SQL i VB

Hej Eksperter.
Hvordan får man resultatet af en sql forespørgsel til at stå i enten en Textbox eller Label-felt ?.
Hvis jeg f.eks. vil finde alle der bor i postnr. 8000 og få skrevet antalet af poster i min Label/Text-felt.
Og hvordan udføres commandoen automatisk, når jeg starter mit prg. op ?
Er meget ny mht. emnet, så det ville være perfekt, hvis en gad skrive det en smule udførligt.
Takker mange gange.

MVH
Thomas J.
Avatar billede hy Nybegynder
30. december 2001 - 21:07 #1
Jeg ved ikke hvor udførlig dette er men prøv om du kan bruge det !

Set dbWs = DBEngine.Workspaces(0)
  Set dbsag = dbWs.OpenDatabase(App.Path & \"billedarkiv.mdb\")


  Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM arkiv WHERE ponr = \'8000\' ORDER BY id\", dbOpenDynaset)

   
    Do While Not dbPBrec.EOF
      List3.AddItem dbPBrec!id
    Loop

Sæt det hele i Form_Load()
Avatar billede fqthjoe Nybegynder
30. december 2001 - 21:39 #2
Jeg har nu prøvet med følgende:

Set dbws = DBEngine.Workspaces(0)
  Set dbsag = OpenDatabase(\"g:\\musik97.mdb\")
  Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM MUSIK WHERE Kunstner = \'TV2\' ORDER BY Kunstner\", dbOpenDynaset)
    Do While Not dbPBrec.EOF
    \' List1.AddItem dbPBrec!Id
    Label2.Caption = dbPBrec!Id
    Loop
Men der fremkommer ingen resultat, blot at det er ligesom prg. kører i ring. Skal afbrydes med Break.
Kan du hjælpe ?
Avatar billede hy Nybegynder
30. december 2001 - 22:54 #3
Nej den skal selc stoppe når der ikke er flere records.
Prøv med :
Set dbws = DBEngine.Workspaces(0)
  Set dbsag = OpenDatabase(\"g:\\musik97.mdb\")
  Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM MUSIK WHERE Kunstner = \'TV2\' ORDER BY Kunstner\", dbOpenDynaset)
    Do While Not dbPBrec.EOF
    \' List1.AddItem dbPBrec!Id
    Label2.Caption =  Label2.Caption & vbCrLf & dbPBrec!Kunstner
    Loop
Avatar billede proaccess Nybegynder
31. december 2001 - 08:31 #4
Det kan bedst betale sig at beregne totalen i Access...  MEN Hvis du absolut vil gennemløbe posterne i et recordset, så skal du huske at skifte til neste post !!!

Set dbws = DBEngine.Workspaces(0)
Set dbsag = OpenDatabase(\"C:\\Kunder.mdb\")
Set dbPBrec = dbsag.OpenRecordset(\"SELECT Count(*) As Antal FROM tabelNavn WHERE Postnr=8000\", dbOpenDynaset)
Label2.Caption = dbPBrec!Antal

eller...

Set dbws = DBEngine.Workspaces(0)
Set dbsag = OpenDatabase(\"g:\\musik97.mdb\")
Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM MUSIK WHERE Kunstner = \'TV2\' ORDER BY Kunstner\", dbOpenDynaset)
Do While Not dbPBrec.EOF
\'  List1.AddItem dbPBrec!Id
  Label2.Caption = dbPBrec!Id
  dbPBrec.MoveNext \'  DET ER DENNE LINIE, SOM SKIFTER POST
Loop
Avatar billede proaccess Nybegynder
31. december 2001 - 08:33 #5
BEMÆRK:

Når du ved at der kun er een kunstner i denne forespørgsel, så behøver du ikke at sortére efter Kunstner...

Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM MUSIK WHERE Kunstner = \'TV2\' ORDER BY Kunstner\", dbOpenDynaset)

Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM MUSIK WHERE Kunstner = \'TV2\'\", dbOpenDynaset)


Avatar billede hy Nybegynder
31. december 2001 - 09:24 #6
Prøv med :
Set dbws = DBEngine.Workspaces(0)
  Set dbsag = OpenDatabase(\"g:\\musik97.mdb\")
  Set dbPBrec = dbsag.OpenRecordset(\"SELECT * FROM MUSIK WHERE Kunstner = \'TV2\' ORDER BY Kunstner\", dbOpenDynaset)
    Do While Not dbPBrec.EOF
    \' List1.AddItem dbPBrec!Id
    Label2.Caption =  Label2.Caption & vbCrLf & dbPBrec!Kunstner
    dbPBrec.MoveNext
    Loop
Avatar billede fqthjoe Nybegynder
31. december 2001 - 11:06 #7
Hejsa, takker mange gange for hjælpen, men vil lige spørge, om jeg kan få totalen af antalet af fudne poster. Altså at den skriver i Label2 hvor mange poster der er fundet.
Det er kanon at I har hjulpet.
Mon ikke at hy, skal svare også, så point\'ene skal fordeles :-)
Avatar billede hy Nybegynder
31. december 2001 - 14:57 #8
Du kan som proaccess har svaret bruge Count.

Lav en Label3 og indsæt følgende :

Set dbws = DBEngine.Workspaces(0)
Set dbsag = OpenDatabase(\"C:\\Kunder.mdb\")
Set dbPBrec = dbsag.OpenRecordset(\"SELECT Count(Kunstner) As Antal FROM MUSIK WHERE Kunstner = \'TV2\'\", dbOpenDynaset)
Label3.Caption = dbPBrec!Antal


hyde
Avatar billede hy Nybegynder
31. december 2001 - 14:58 #9
Ret lige anden linie til :
Set dbsag = OpenDatabase(\"g:\\musik97.mdb\")
så går det lidt beder.

BTW Godt nyt år.......

hyde
Avatar billede fqthjoe Nybegynder
01. januar 2002 - 19:02 #10
Kanon... Det hele virker :-)
I er sgu\' nogle dygtige drenge...
Hvis jeg lige må stille et enkelt til:
Når jeg nu har udført en søgning på \"find alle tv2\" poster, og trykker commandknap, kan jeg så få den samme commandoknap til at blive til \"vis Alle\", så når jeg igen trykker denne knap vises alle poster igen. Eller som alternativ en anden commandoknap, som bruges til Vis alle poster\"
Er bare så glad for jeres svar.
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