29. oktober 2002 - 20:46Der er
7 kommentarer og 1 løsning
VB og database via DAO - hjæælp
Jeg har en database med en tabel SOVS. I tabellen er der 99 poster, hvis navne jeg har gemt i et array dbFELTArray(). I et andet array, SvarArray(), ligger de værdier jeg vil smide ind i tabellen.
Set dbWs = DBEngine.Workspaces(0) Set dbSOVS = dbWs.OpenDatabase(Text2.Text) Set dbSOVSrec = dbSOVS.OpenRecordset("SELECT * _ FROM SOVS", dbOpenDynaset) For i = 0 To 99 With dbSOVSrec .AddNew !dbFELTArray(i) = SvarArray(i) '<-- FEJL .Update End With Next i
Problemet er, at jeg åbenbart ikke kan kalde feltnavnene ved at bruge arrayet - hvis jeg i stedet skriver:
!Navn = SvarArray(i) !Alder = SvarArray(i)
virker det fint- men den løsning kan jeg ikke bruge, jeg VIL have at den skal læse feltnavnet fra mit array...
Jeg droppede array-funktionen, og skrev feltnavnene (100 stk!) i stedet - det skulle gå lidt hurtigt. Der stadig point af hente hvis en har løsningen, selvom jeg ikke har desperat brug for den længere.
Jeg kender ikke svaret på dit spørgsmål, men vil blot sige at jeg ville have lageret data på en anden måde. Du har valgt at lave database posten med 99 felter.
Jeg ville have lavet posten med 2 felter: 1. DataNavn 2. DataIndhold
DataNavn skal så indholde navnet på den ønskede data type, f.eks Fornavn, Alder osv. DataIndhold skal indeholde det data du arbejder med, f.eks Anders, 57 år osv.
Tabel udseende ID DataNavn DataIndhold 0 Fornavn Anders 1 Alder 57 år
Man kan normalt godt læse feltnavnet selv om man refererer til det gennem et index, ved at tilføje >.Name< Har du prøvet følgende? !dbFELTArray(i).Name = SvarArray(i) '<-- FEJL
Nop - ikke forsøgt, et gammelt projekt nu. Men skal nok huske tippet :o)
Synes godt om
Ny brugerNybegynder
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.