/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Dataforbindelse til DB
Fra : Mikkel Jørgensen


Dato : 13-08-03 15:06

Hej

Jeg sidder pt. og leger lidt med noget VB6 og databaser, nu vil jeg så hører
om der er en som kan hjælpe mig lidt. Jeg har fået noget hjælp til at lave
en selve søge koden, dog mangler jeg lidt hjælp til at finde ud af hvordan
jeg connecter til databasen

Min søgekode ser således ud

*********************************
Dim dbs As Database
Dim qdf As QueryDef
Dim strsql As String

Set dbs = currentdb

strsql = "SELECT modtager FROM tblbeskeder WHERE modtager like '" &
frmmain.txtini & "';"

Set qdf = dbs.CreateQueryDef("temp", strsql)


Me.List1.RowSource = "SELECT, modtager FROM " & qdf.Name

dbs.QueryDefs.Delete qdf.Name
********************************

Håber der er nogen som kan hjælpe mig lidt videre, evt bare med hint til
hvad jeg skal.


Med venlig hilsen

Mikkel Jørgensen



 
 
Krabsen (13-08-2003)
Kommentar
Fra : Krabsen


Dato : 13-08-03 15:43

Du har vist ikke fortalt systemet, hvad databasen hedder:

Set dbs = OpenDatabase(("D:\databaser/testbase.mdb"))

Evt. kan databasenavnet hentes fra en TESTAPP.INI, så basen kan
omdøbes/flyttes uden at skulle recompilere, men det er lidt længere kode, så
det får du kun, hvis du ber om det

mvh
Krabsen


"Mikkel Jørgensen" <mikkel@marjNOSPAM.dk> skrev i en meddelelse
news:3f3a45ec$0$24721$edfadb0f@dread14.news.tele.dk...
> Hej
>
> Jeg sidder pt. og leger lidt med noget VB6 og databaser, nu vil jeg så
hører
> om der er en som kan hjælpe mig lidt. Jeg har fået noget hjælp til at lave
> en selve søge koden, dog mangler jeg lidt hjælp til at finde ud af hvordan
> jeg connecter til databasen
>
> Min søgekode ser således ud
>
> *********************************
> Dim dbs As Database
> Dim qdf As QueryDef
> Dim strsql As String
>
> Set dbs = currentdb
>
> strsql = "SELECT modtager FROM tblbeskeder WHERE modtager like '" &
> frmmain.txtini & "';"
>
> Set qdf = dbs.CreateQueryDef("temp", strsql)
>
>
> Me.List1.RowSource = "SELECT, modtager FROM " & qdf.Name
>
> dbs.QueryDefs.Delete qdf.Name
> ********************************
>
> Håber der er nogen som kan hjælpe mig lidt videre, evt bare med hint til
hvad jeg skal.
>



Mikkel Jørgensen (13-08-2003)
Kommentar
Fra : Mikkel Jørgensen


Dato : 13-08-03 16:22

takker....

ja tak vil da gerne se den kode, så jeg kan slippe for den recompilering


mvh

mikkel


"Krabsen" <news@krabsen.dk> wrote in message news:bhdiqe$1lv$1@sunsite.dk...
> Du har vist ikke fortalt systemet, hvad databasen hedder:
>
> Set dbs = OpenDatabase(("D:\databaser/testbase.mdb"))
>
> Evt. kan databasenavnet hentes fra en TESTAPP.INI, så basen kan
> omdøbes/flyttes uden at skulle recompilere, men det er lidt længere kode,

> det får du kun, hvis du ber om det
>
> mvh
> Krabsen
>
>
> "Mikkel Jørgensen" <mikkel@marjNOSPAM.dk> skrev i en meddelelse
> news:3f3a45ec$0$24721$edfadb0f@dread14.news.tele.dk...
> > Hej
> >
> > Jeg sidder pt. og leger lidt med noget VB6 og databaser, nu vil jeg så
> hører
> > om der er en som kan hjælpe mig lidt. Jeg har fået noget hjælp til at
lave
> > en selve søge koden, dog mangler jeg lidt hjælp til at finde ud af
hvordan
> > jeg connecter til databasen
> >
> > Min søgekode ser således ud
> >
> > *********************************
> > Dim dbs As Database
> > Dim qdf As QueryDef
> > Dim strsql As String
> >
> > Set dbs = currentdb
> >
> > strsql = "SELECT modtager FROM tblbeskeder WHERE modtager like '" &
> > frmmain.txtini & "';"
> >
> > Set qdf = dbs.CreateQueryDef("temp", strsql)
> >
> >
> > Me.List1.RowSource = "SELECT, modtager FROM " & qdf.Name
> >
> > dbs.QueryDefs.Delete qdf.Name
> > ********************************
> >
> > Håber der er nogen som kan hjælpe mig lidt videre, evt bare med hint til
> hvad jeg skal.
> >
>
>



Krabsen (13-08-2003)
Kommentar
Fra : Krabsen


Dato : 13-08-03 17:40

Ok, så kører vi:

1. Hent filen www.gkr.dk/vbkode/inifiler.bas og gem den sammen med dit
projekt. Inkluder det i projektet som et nyt modul (Project/Add
Module/Existing)
Koden kan naturligvis også indlægges i et bestående modul, men ved at have
det i en separat fil, kan det genbruges i andre projekter.


2. I dit global-modul (f.eks. global.bas) tilføjes

Global Const IniFilNavn = "projektnavn.ini"
Global dbSti As String
Global db As Database
Global msg as String

3. I sub Main eller i load-proceduren på din mainform tilføjes kommandoerne

InitProfile IniFilNavn, False
Databaseentry

3. I Global-modulet tilføjes

Sub Databaseentry()
On Error GoTo Ehdbe
Set db = OpenDatabase(ReadProfile("Biblioteker", "DataBase",
"defaultnavn.mdb"))
dbSti = ReadProfile("Biblioteker", "DataBase", "defaultnavn.mdb")
frmMain.Caption = "Projektnavn- " & db.Name
Exit Sub
Ehdbe:
Select Case Err > 0
Case Err = 3024 Or Err = 3044 ' database findes ikke eller sti i
projekt.ini er forkert
msg = "Database findes ikke. " + CR
msg = msg + "Vælg en anden!"
MsgBox msg, 64, "Åbn Database"
Case Err = 3049 ' korrupt database
RepairDatabase dbSti
Case Else
Visfejlmeddelelse Str(Err), "DatabaseEntry"
End Select
End Sub


4. Den globale variable dbSti er nyttig, hvis man bruger ADO-kontroller på
sine forms.
Så ligger der i alle form.load procedurer en
Data1.DatabaseName = dbSti
Data2.DatabaseName = dbSti
..

Det er i korte træk den måde, jeg håndterer det på. Jeg har så ofte -
afhængigt af projektet - udvidet med dialogbox til at vælge anden base,
kontrol af, at der ikke er brugt et databasenavn, som jeg har reserveret til
systemet m.v.

Jeg håber ikke, jeg har glemt en kommando

mvh
Krabsen



"Mikkel Jørgensen" <mikkel@marjNOSPAM.dk> skrev i en meddelelse
news:3f3a57c9$0$24694$edfadb0f@dread14.news.tele.dk...
> takker....
>
> ja tak vil da gerne se den kode, så jeg kan slippe for den recompilering
>
> mvh
>



Mikkel Jørgensen (17-08-2003)
Kommentar
Fra : Mikkel Jørgensen


Dato : 17-08-03 10:57

Takker for svaret, mene jeg må desværre jeg ikke lige forstår så meget af
det :o/

Altså vi laver en .ini fil hvori stien til databasen ligger. Denne fil læser
vi så når en form bliver åbnet ? Og herefter skulle forbindelsen til
databasen være etableret, men hvordan pokker skal jeg lige koble det sammen
med den søgekode jeg har ?

Ja, som du nok kan hører så er jeg ikke lige den mest trænede i VB
håber du kan bære over med mig.

"Krabsen" <news@krabsen.dk> wrote in message news:bhdpls$8mm$1@sunsite.dk...
> Ok, så kører vi:
>
> 1. Hent filen www.gkr.dk/vbkode/inifiler.bas og gem den sammen med dit
> projekt. Inkluder det i projektet som et nyt modul (Project/Add
> Module/Existing)
> Koden kan naturligvis også indlægges i et bestående modul, men ved at have
> det i en separat fil, kan det genbruges i andre projekter.
>
>
> 2. I dit global-modul (f.eks. global.bas) tilføjes
>
> Global Const IniFilNavn = "projektnavn.ini"
> Global dbSti As String
> Global db As Database
> Global msg as String
>
> 3. I sub Main eller i load-proceduren på din mainform tilføjes
kommandoerne
>
> InitProfile IniFilNavn, False
> Databaseentry
>
> 3. I Global-modulet tilføjes
>
> Sub Databaseentry()
> On Error GoTo Ehdbe
> Set db = OpenDatabase(ReadProfile("Biblioteker", "DataBase",
> "defaultnavn.mdb"))
> dbSti = ReadProfile("Biblioteker", "DataBase", "defaultnavn.mdb")
> frmMain.Caption = "Projektnavn- " & db.Name
> Exit Sub
> Ehdbe:
> Select Case Err > 0
> Case Err = 3024 Or Err = 3044 ' database findes ikke eller sti i
> projekt.ini er forkert
> msg = "Database findes ikke. " + CR
> msg = msg + "Vælg en anden!"
> MsgBox msg, 64, "Åbn Database"
> Case Err = 3049 ' korrupt database
> RepairDatabase dbSti
> Case Else
> Visfejlmeddelelse Str(Err), "DatabaseEntry"
> End Select
> End Sub
>
>
> 4. Den globale variable dbSti er nyttig, hvis man bruger ADO-kontroller

> sine forms.
> Så ligger der i alle form.load procedurer en
> Data1.DatabaseName = dbSti
> Data2.DatabaseName = dbSti
> ..
>
> Det er i korte træk den måde, jeg håndterer det på. Jeg har så ofte -
> afhængigt af projektet - udvidet med dialogbox til at vælge anden base,
> kontrol af, at der ikke er brugt et databasenavn, som jeg har reserveret
til
> systemet m.v.
>
> Jeg håber ikke, jeg har glemt en kommando
>
> mvh
> Krabsen
>
>
>
> "Mikkel Jørgensen" <mikkel@marjNOSPAM.dk> skrev i en meddelelse
> news:3f3a57c9$0$24694$edfadb0f@dread14.news.tele.dk...
> > takker....
> >
> > ja tak vil da gerne se den kode, så jeg kan slippe for den recompilering
> >
> > mvh
> >
>
>



Krabsen (17-08-2003)
Kommentar
Fra : Krabsen


Dato : 17-08-03 20:37



"Mikkel Jørgensen" <mikkel@marjNOSPAM.dk> skrev i en meddelelse
news:3f3f51a4$0$24655$edfadb0f@dread14.news.tele.dk...
> Takker for svaret, mene jeg må desværre jeg ikke lige forstår så meget af
> det :o/
>


> Altså vi laver en .ini fil hvori stien til databasen ligger. Denne fil
læser
> vi så når en form bliver åbnet ? Og herefter skulle forbindelsen til
> databasen være etableret, men hvordan pokker skal jeg lige koble det
sammen
> med den søgekode jeg har ?
>
Nej, vi læser INI-filen, når _Programmet_ startes, og gemmer
database-connectionen i en global variabel 'db'.
Når du først har forbindelsen til databasen via variablen db, så er det bare
at fyre SQL'er af:

1. SQL, der ændrer data, men ikke 'returnerer' et datasæt:

global sqlTekst as string

dim antalsvariabel as integer
sqlTekst ="UPDATE Bestilling SET Bestilling .antal=" & antalsvariabel &
";"
antalsvariabel = et-eller-andet
db.execute(sqlString)

2. SQL, der returnerer et sæt af records:

global sqlTekst as string (den har vi allerede lavet)

dim ssBestillinger as Recordset
sqlTekst="SELECT * FROM Bestilling WHERE Bestilling.Antal >5"
set ssBestillinger = db.openrecordset(slqTekst)
While not ssBestillinger
msgbox "Kunde " & Bestilling!kunde & " har bestilt" &
Bestilling!Antal & " stk."
ssBestillinger.MoveNExt
wend


hth
/Krabsen




Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste