/ 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
Database Problem
Fra : Tim Sørensen


Dato : 05-08-01 09:36

Jeg vil fylde en ListBox med nogle data der bliver trukket ud af et Field i
en database.
Hvis jeg benytter denne kode fungerer det fint:

<snip>
Function Fyld_Liste(Listen As ListBox, DatabaseNavn As String, RecordSettet
As String)
Listen.Clear
Set mDB = OpenDatabase(App.Path + "\" & DatabaseNavn & ".mdb")
With mDB
Set mRS = .OpenRecordset(RecordSettet)
With mRS
If .RecordCount <> 0 Then
.MoveFirst
Listen.AddItem !Navn '<-- DET ER HER PROBLEMET KOMMER SERNERE
For dby = 1 To .RecordCount - 1
.MoveNext
If .EOF Then Exit For
Listen.AddItem !Navn '<-- DET ER HER PROBLEMET KOMMER
SERNERE
</snip>

Det er bare ikke så praktisk, da meningen med modulet er at en begynder ikke
skal ændre i modulets kode.
Så jeg prøvede at gøre funktionen komplet med denne kode:

<snip>
Function Fyld_Liste(Listen As ListBox, DatabaseNavn As String, FeltNavn As
Field, RecordSettet As String)
Listen.Clear
Set mDB = OpenDatabase(App.Path + "\" & DatabaseNavn & ".mdb")
With mDB
Set mRS = .OpenRecordset(RecordSettet)
With mRS
If .RecordCount <> 0 Then
.MoveFirst
Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
For dby = 1 To .RecordCount - 1
.MoveNext
If .EOF Then Exit For
Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
<snip>

Dette er VB dog meget ked af at skulle bruge.
Jeg har også ændret "FeltNavn As Field" til "FeltNavn As String" med så
bliver listen bare fyldt med forkerte data. :-/

Nogle der har et godt forslag til hvordan jeg kan få ovenstående funktion
til at fungere??

--
Mvh.... Tim Sørensen
http://dondata.adsl.dk/



 
 
Barney Gumble (05-08-2001)
Kommentar
Fra : Barney Gumble


Dato : 05-08-01 11:25

Prøv at bruge:

Listen.AddItem mRS.Fields(FeltNavn)

Jeg anbefalder også at du bruger:

If .recordCount >0 Then
Do Until .EOF
Listen.AddItem .Fields(FeltNavn)
.MoveNext
Loop
End If

istedet For...Next

BG

> <snip>
> Function Fyld_Liste(Listen As ListBox, DatabaseNavn As String, FeltNavn As
> Field, RecordSettet As String)
> Listen.Clear
> Set mDB = OpenDatabase(App.Path + "\" & DatabaseNavn & ".mdb")
> With mDB
> Set mRS = .OpenRecordset(RecordSettet)
> With mRS
> If .RecordCount <> 0 Then
> .MoveFirst
> Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> For dby = 1 To .RecordCount - 1
> .MoveNext
> If .EOF Then Exit For
> Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> <snip>




Tim Sørensen (05-08-2001)
Kommentar
Fra : Tim Sørensen


Dato : 05-08-01 13:06

Tak skal du have der.
Det ser ud til at det var en dummer fra min side af...

Har arbejdet på det længe og er vidst ved at være "kode-blind".
Havde ikke tænkt på paranteserne.

--
Mvh.... Tim Sørensen
http://dondata.adsl.dk/



@sbjørn (05-08-2001)
Kommentar
Fra : @sbjørn


Dato : 05-08-01 20:38

For...Next er 5 gange hurtigere end Do...Loop
"Barney Gumble" <duff.drinker.nofudd@cornerpub.com> skrev i en meddelelse
news:9kj6sd$2rmg$1@news.cybercity.dk...
> Prøv at bruge:
>
> Listen.AddItem mRS.Fields(FeltNavn)
>
> Jeg anbefalder også at du bruger:
>
> If .recordCount >0 Then
> Do Until .EOF
> Listen.AddItem .Fields(FeltNavn)
> .MoveNext
> Loop
> End If
>
> istedet For...Next
>
> BG
>
> > <snip>
> > Function Fyld_Liste(Listen As ListBox, DatabaseNavn As String, FeltNavn
As
> > Field, RecordSettet As String)
> > Listen.Clear
> > Set mDB = OpenDatabase(App.Path + "\" & DatabaseNavn & ".mdb")
> > With mDB
> > Set mRS = .OpenRecordset(RecordSettet)
> > With mRS
> > If .RecordCount <> 0 Then
> > .MoveFirst
> > Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> > For dby = 1 To .RecordCount - 1
> > .MoveNext
> > If .EOF Then Exit For
> > Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> > <snip>
>
>
>



Johnny Emde Jensen (07-08-2001)
Kommentar
Fra : Johnny Emde Jensen


Dato : 07-08-01 08:49

Hej jeg blander mig lige!

Notationen: If .recordCount >0 then ' Kan den ikke give problemer??

Jeg mener at man skal aktiverer med .moveLast før .recordCount bliver
opdateret, eller har jeg misforstået noget?

Johnny

Barney Gumble <duff.drinker.nofudd@cornerpub.com> skrev i en
nyhedsmeddelelse:9kj6sd$2rmg$1@news.cybercity.dk...
> Prøv at bruge:
>
> Listen.AddItem mRS.Fields(FeltNavn)
>
> Jeg anbefalder også at du bruger:
>
> If .recordCount >0 Then
> Do Until .EOF
> Listen.AddItem .Fields(FeltNavn)
> .MoveNext
> Loop
> End If
>
> istedet For...Next
>
> BG
>
> > <snip>
> > Function Fyld_Liste(Listen As ListBox, DatabaseNavn As String, FeltNavn
As
> > Field, RecordSettet As String)
> > Listen.Clear
> > Set mDB = OpenDatabase(App.Path + "\" & DatabaseNavn & ".mdb")
> > With mDB
> > Set mRS = .OpenRecordset(RecordSettet)
> > With mRS
> > If .RecordCount <> 0 Then
> > .MoveFirst
> > Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> > For dby = 1 To .RecordCount - 1
> > .MoveNext
> > If .EOF Then Exit For
> > Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> > <snip>
>
>
>



Barney Gumble (07-08-2001)
Kommentar
Fra : Barney Gumble


Dato : 07-08-01 17:24

Rigtig nok. Jeg bruger selv

If .BOF Or .EOF Then
'Empty Recordset
Else
<...code...>
End If

Hvis Recordset ikke indeholder poster, begge BOF og EOF er sat til True.

BG

BTW.
Hust at teste If mRS Is Nothing Then Error...

"Johnny Emde Jensen" <emde@emde.dk> skrev i en meddelelse
news:o3Nb7.27$UY.2704@news.get2net.dk...
> Hej jeg blander mig lige!
>
> Notationen: If .recordCount >0 then ' Kan den ikke give problemer??
>
> Jeg mener at man skal aktiverer med .moveLast før .recordCount bliver
> opdateret, eller har jeg misforstået noget?
>
> Johnny
>
> Barney Gumble <duff.drinker.nofudd@cornerpub.com> skrev i en
> nyhedsmeddelelse:9kj6sd$2rmg$1@news.cybercity.dk...
> > Prøv at bruge:
> >
> > Listen.AddItem mRS.Fields(FeltNavn)
> >
> > Jeg anbefalder også at du bruger:
> >
> > If .recordCount >0 Then
> > Do Until .EOF
> > Listen.AddItem .Fields(FeltNavn)
> > .MoveNext
> > Loop
> > End If
> >
> > istedet For...Next
> >
> > BG
> >
> > > <snip>
> > > Function Fyld_Liste(Listen As ListBox, DatabaseNavn As String,
FeltNavn
> As
> > > Field, RecordSettet As String)
> > > Listen.Clear
> > > Set mDB = OpenDatabase(App.Path + "\" & DatabaseNavn & ".mdb")
> > > With mDB
> > > Set mRS = .OpenRecordset(RecordSettet)
> > > With mRS
> > > If .RecordCount <> 0 Then
> > > .MoveFirst
> > > Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> > > For dby = 1 To .RecordCount - 1
> > > .MoveNext
> > > If .EOF Then Exit For
> > > Listen.AddItem !FeltNavn '<-- HER ER PROBLEMET
> > > <snip>
> >
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste