Avatar billede jrl0469 Nybegynder
14. november 2002 - 12:06 Der er 21 kommentarer og
1 løsning

Tilføje post til mdb, problem med senere indlæsning i combobox

Problemstilling:
Efter end .update kan mdb - tabel ikke indlæses til combobox startende med ID=0 (1st post i tabel). Ved forsøg på indlæsning startes med sidste oprettede post?

Refence: ms dao 3.6 obj lib.

Problemløsning:
Eksport af mdb - tabel til xls og derefter import til mdb?
Denne løsning er jo noget gusten!!!!
Avatar billede tubber Juniormester
14. november 2002 - 12:21 #1
Helt nøjagtigt hvad er det du søger.....og er det med datatingen i vb eller sql ?
Avatar billede jrl0469 Nybegynder
14. november 2002 - 12:54 #2
Hej tubber
Nedenstående kode medfører fejl da, "indeks" <> 0 når i = 1

  Set tabel = db.TableDefs("_ObjOprindelse")
  Set dbRS = tabel.OpenRecordset
  For i = 1 To dbRS.RecordCount
    frmMain.cboObjOpr.AddItem dbRS.Fields("Oprindelse"), dbRS.Fields("indeks")
    dbRS.MoveNext
  Next i

Hvorfor og hvad kan jeg gøre for at få den til at starte ved post 1 i tabellen (ID = 0)?
Avatar billede Slettet bruger
14. november 2002 - 12:58 #3
Kan du ikke bare bruge Do/Loop i stedet? Ellers har jeg nok ikke forstået problemstillingen.  :)

If Not dbRS.EOF Then
  Do While Not dbRS.EOF
    frmMain.cboObjOpr.AddItem dbRS.Fields("Oprindelse"), dbRS.Fields("indeks")
    dbRS.MoveNext
  Loop
End If
Avatar billede jrl0469 Nybegynder
14. november 2002 - 13:21 #4
Hej magik
Loop'en er ok men løser ikke problemmet!
Index til combo skal jo starte med 0! dbRS.Fields("indeks") <> 0 da der ikke states ved første post?
Avatar billede martin_moth Mester
14. november 2002 - 15:48 #5
Jeg fatter ikke helt problemet... Men hvis du putter en tæller ind i løkken, og så bruger den til et eller andet, kan det ikke løse problemet (som jeg somsagt ikke helt har forstået?)

i = 37 'Eller en anden startværdi
If Not dbRS.EOF Then
  Do While Not dbRS.EOF
    frmMain.cboObjOpr.AddItem dbRS.Fields("Oprindelse"), dbRS.Fields("indeks")
    'I ovenstående bruges i til et eller andet
    dbRS.MoveNext
    i = i + 1
  Loop
End If

Prøv at forklar lidt tydeligere...
Avatar billede tubber Juniormester
14. november 2002 - 16:36 #6
Hvis jeg har forstået det ret så vil du have alle poster ind i en combobox ?
og det skal gøres i en bestemt rækkefølge eller hvad ?
Avatar billede jrl0469 Nybegynder
15. november 2002 - 08:55 #7
Hej m&m og tubber
m&m:
AddItem har to param hvoraf param 2 - index er valgtfrit. Jeg skal bruge index'et og combobox.AddItem kræver at index'et er kontinuert stigende startende med 0 (nul).

tubber:
se ovenstående...
Avatar billede martin_moth Mester
15. november 2002 - 10:06 #8
Fatter stadig ikke spørgsmålet - jeg er nok dum :o(

Det er jo ikke noget problem at have 2 index til at løbe i en løkke - jeg forstår bare stadig ikke hvilke variabler der skal være hvad hvornår... Jeg tror det er supersimpelt, men som sagt - se øverste linie
Avatar billede jrl0469 Nybegynder
15. november 2002 - 10:29 #9
Ok m&m. Når der skal tilføjes et indexeret element til en liste SKAL der startes med index(0). Man kan ikke starte med index(37). Efterfølgende index SKAL være index(1) etc.
Eks.
frmMain.cboObjOpr.AddItem dbRS.Fields("Oprindelse"), dbRS.Fields("indeks") <=>
frmMain.cboObjOpr.AddItem "Oprindelse 1", 0
frmMain.cboObjOpr.AddItem "Oprindelse 2", 1 etc.

Tabellen "_ObjOprindelse" er underliggende tabel til en hovedtabel derfor kan index'et ikke være tilfældigt!
Avatar billede tubber Juniormester
15. november 2002 - 11:52 #10
Du laver en recordcount ik ?

i = 0
Do while i <= recordcount
  combo1.additem dbRS.Fields("Oprindelse"), i
  i = i + 1
Loop

er det sådan noget du leder efter ? eller skal den hente index i din db også ?

Do while i <= recordcount
  combo1.additem dbRS.Fields("Oprindelse"), dbRS.Fields("indeks") - 1
  i = i + 1
Loop
Avatar billede jrl0469 Nybegynder
15. november 2002 - 11:59 #11
Hej tubber
Godt set...
dbRS.Fields("indeks") er det index jeg henter fra databasen!!!! Problemmet er at AddItem kræver at jeg angiver 0,1,2,...,n+1 i numerisk rækkefølge. Ved indlæsning forekommer det så at første post der forsøges indlæst ikke er den første post i tabellen (se tidligere kommentarer)???????
Avatar billede tubber Juniormester
15. november 2002 - 12:11 #12
aaaahhh....

Do while i < recordcount
  If i = dbRS.Fields("indeks") Then
      combo1.additem dbRS.Fields("Oprindelse")
      i = i + 1
 
End If
Loop
Avatar billede tubber Juniormester
15. november 2002 - 12:12 #13
hov 2 sec....
Avatar billede tubber Juniormester
15. november 2002 - 12:22 #14
Tror jeg har fået lavet sådan den løber din db igennem og finder den post der skal ind i det næste index, og så løber den igennem den igen og igen til den har fundet en for hver post.....

RecordCount = dbRS.RecordCount - 1
For i = 0 To RecordCount
If Not rs.EOF Then
    rs.MoveFirst
    Do While Not rs.EOF
        If i = dbRS.Fields("indeks") Then
            combo1.AddItem dbRS.Fields("Oprindelse")
            i = i + 1
            Exit Do
        Else: rs.MoveNext
        End If
    Loop
End If
Next i
Avatar billede jrl0469 Nybegynder
15. november 2002 - 13:06 #15
Hej tubber
Dee er fejl i koden:  for i=0; i = i + 1 => i=1 også Next i => i=2... Således medtages kun hver anden post!
Avatar billede tubber Juniormester
15. november 2002 - 13:31 #16
Prøv at fjerne den der i = i + 1
eller også lav for j =
Avatar billede arnvig Nybegynder
03. december 2002 - 18:00 #17
Hvad med at lave en sort af dit recordset inden du læser det.
Avatar billede jrl0469 Nybegynder
09. december 2002 - 11:07 #18
Hej arnvig
Har du koden til at gøre det?

Mvh Jan
Avatar billede arnvig Nybegynder
13. december 2002 - 09:42 #19
dim myrs as recordset
dim sortrs as recordset

sortrs.sort = "indeks,oprindelse"
set sortrs = myrs

du får lavet et nyt recordset, som er sorteret

Du kan også sortere det når du åbner det
bare set property: .sort = "sortfelt1,sortfelt2,....sortfeltn"
Avatar billede arnvig Nybegynder
13. december 2002 - 09:43 #20
upps: skulle være

dim myrs as recordset
dim sortrs as recordset

sortrs.sort = "indeks,oprindelse"
set sortrs = myrs.OpenRecordset
Avatar billede jrl0469 Nybegynder
13. december 2002 - 09:44 #21
Skal det forstås sådan at databasen bliver sorteret?
Avatar billede jrl0469 Nybegynder
09. januar 2003 - 10:44 #22
lukker
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