Avatar billede martin_moth Mester
27. oktober 2002 - 16:17 Der er 12 kommentarer og
1 løsning

VB og database - ret nemt

Hej

1)Jeg har et array jeg fylder med 100 strings
2)Arrayet skal skrives til 100 felter i en DB
3)Dette vil jeg gøre mange gange

Altså:

For i = 1 to mange gange
  Opret post nr i i DB
  For j = 0 to 99 'Fylder array med strings
    MitArray(j) = "Tekststreng nr " & j & "loop nr " & i
  next j
  For j = 0 to 99 'Smider array over i DB post nr i
    Databasefelt post nr i felt nr j = MitArray(j)
  next j 
Next i

Mit spørgsmål:

kan man på en snedig måde fylde fra array til DB uden at angive feltnavnene i DB'en, som jeg har vist i sidste j-loop - og hvordan
Avatar billede martin_moth Mester
27. oktober 2002 - 16:41 #1
Lad mig spørge endnu mere generelt:

Jeg har et array med fx. 100 poster
Jeg har en database med 100 felter
Jeg vil smide de 100 array-poster ind i de 100 felter i databasen, uden at skulle bruge felternes navne... Hvordan?
Avatar billede tubber Juniormester
27. oktober 2002 - 21:30 #2
hmmm.....tror ikke det kan lade sig gøre at komme noget i en db og komme uden om feltnavnene....

de records du vil putte ind (hvis jeg har forstået der rigtigt) så er det 100 feltnavne under hver post ?

sidder lige og fundere over hvordan det kan gøres vender lige tilbage :O)
Avatar billede tubber Juniormester
27. oktober 2002 - 22:00 #3
Hvis du kan holde dit array sorteret så det der skal i felt 1 altid stå op plads 0 i dit array, så kunne du jo lave et array mere som du bruger til at kalde dine poster med....

altså felt()

så har du mitArray() og mitFelt()

n = 0
Do while n > 100
db.Execute "INSERT INTO tabel ('" & mitFelt(n) & "') VALUES ('" & mitArray(n) & "');"
n = n + 1
Loop

Håber du forstår......
Avatar billede tubber Juniormester
27. oktober 2002 - 22:02 #4
Arrayet mitFelt() skal have faste værdier fra start.....
Ved ikke om man kan sige den skal ved Form_Load() hente de forskellige feltnavne ? eller om de skal sættes manuelt...

/Tubber
Avatar billede tubber Juniormester
27. oktober 2002 - 22:02 #5
Ved godt det ikke er den måde du lige bruger DB på, men du kender den så du kan vel selv lige skrive det om, jeg kender nemlig ikke lige den måde du bruger det på.....
Avatar billede martin_moth Mester
27. oktober 2002 - 23:03 #6
Ja, den med 2 arrays, et med feltnavnene og et med de værdier der skal puttes i, er nok det smarteste - så skal jeg trods alt kun skrive feltnavnene een gang. Jeg håbede bare man kunne kalde dem med et index af en art... Eller loope gennem alle felterne. Sig mig - kan man ikke det - lave arrayet mitFelt() en gang for alle ved en løkke af en art, fx under form_load?

DB'en har en tabel med "faste" feltnavne. Kan man ikke loope gennem dem med en for each af en art, og smide dem ind i MitFelt()
Avatar billede tubber Juniormester
27. oktober 2002 - 23:11 #7
Prøver lige at se på det om jeg kan finde ud af om man kan læse tabellerne......
Avatar billede tubber Juniormester
28. oktober 2002 - 00:26 #8
Damn uanset hvordan jeg finder det frem så kan jeg ikke komme uden om at skulle skrive det.....

Men har lige en anden ide brb.....
Avatar billede tubber Juniormester
28. oktober 2002 - 00:34 #9
Hmmm.....det eneste jeg kan komme på er at du giver feltnavnene tal som navn.....f.eks. felt1, felt2 osv altså i din DB....

så kan du jo løbe dem igennem med et loop med :

F = 0
Do while F > 100
  mitFelt(F) = "Felt" & F
  F + 1
Loop

Kan du bruge noget af det smidder jeg lige et svar....
Avatar billede martin_moth Mester
28. oktober 2002 - 09:05 #10
Hmm - det kunne jeg også selv have fundet på - men ok, du får de 30 :o)
Avatar billede tubber Juniormester
28. oktober 2002 - 10:28 #11
Jeg vil da godt dele dem med dig :O)

Men siger da mange tak ;O)
Avatar billede kjeld_klit Nybegynder
28. oktober 2002 - 16:06 #12
Jeg kikkede lige og fornæmmede et behov for index i stedet for feltnavne. Du kan godt bruge index til at fange felterne, det bruger jeg selv i en For...Next løkke og derfor ikke kan refererer til feltnavnene da jeg jo kun har en variabel.

Feltnavne: rs("Feltnavn")
Index: rs(2)  0-baseret index mener jeg!
Index: rs(varnavn + 3) ..virker også, hvor 3 så er felt4 i db.
Det virker uden videre på en Access db

Det er dog betydeligt vanskeligere at holde styr på og man kan godt glæmme alt om at ændre i db-feltrækkefølgen - så går der virkelig kuk i systemet.

Jeg ved ikke om det lige var det der var problemet, det gik lidt hurtigt med at læse tråden.
\kjeld
Avatar billede martin_moth Mester
29. oktober 2002 - 20:50 #13
> tubber - tjek lige http://www.eksperten.dk/spm/276877 ;o)
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