27. oktober 2002 - 16:17Der 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
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?
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
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...
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å.....
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()
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
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.