Det lille program fungerer fin Sub InsertIntoX() Dim dbs As Database Adre = \"C:\\contas\\contasdata.mdb\" Set dbs = OpenDatabase(Adre) dbs.Execute \" INSERT INTO Fantomas \" _ & \"SELECT * \" _ & \"FROM [NyKontoPlanFore] \" dbs.Close End Sub
Men nedenstående, fungerer ikke så godt, indholdet af NyKontoPlanfore og Fantomas2 og PrintKladde blev kopieret into Fantomas men Nykontoplanfore har 4 felter og Fantomas2 2 felter og PrintKladde 2 felter ,problemmet er at de bliver forskudt fra hinanden, d.v.s.først bliv kopieret NyeKontoplanfore og derefter skulle kopieres Fantomas2 og det skulle kopieres i den 5 kolonne det gør det ogsa men i den sidste række når nykontoplanfore er færdig d.v.s. at de tre bliver forskudt fra hinanden nedad, istedet for at blive ved siden af hinanden
Sub InsertIntoX() Dim dbs As Database Adre = \"C:\\contas\\contasdata.mdb\" Set dbs = OpenDatabase(Adre) dbs.Execute \" INSERT INTO Fantomas \" _ & \"SELECT * \" _ & \"FROM [NyKontoPlanFore],[Fantomas2],[PrintKladde]\" dbs.Close End Sub
Uden at kende din database så vil jeg vurderer at der er fordi du ikke har to nogle atributter der er ens i dine tabeller (to og to)
Det du gør er nemlig, at du ikke har specifceret en join condition og så antager din SQL engine at den skal joine der hvor atributterne er ens. ..Det er de bare ikke og så gør den det, at den indsætter en imaginer null tuble i hver tabel og jioner på den og så får du det resultat de beskriver. (et kartetisk produkt) Du skal derfor beskrive en join condition efter din FROM clause:
& \"WHERE [NyKontoPlanFore].<En atribut>=[Fantomas2].<En atribut> AND [PrintKladde].<En anden atribut>=[Fantomas2].<En anden atribut> \"
det kan også være andre betingelser!! Dine joins afhænger jo at dine tabeller !!
så ved den hvordan det skal hænge sammen. og du undgår dine \"null tubler\"
NyKontoPlanFore,Fantomas2,PrintKladde er tabeler fra Access, jeg er ikke helt med med din analisis af problematikken især med atributterner tubler og kartetisk produkt , men skite fungere ikke,
Ved et uheld kom jeg til at sende og forsætter her med men skidtet fungerer ikke,jeg har lavet programmet om men den fungerer ikke,du har ret at det er noget med at forbinde de tre tabeller sammen . Jeg har prøvet med dit forslag men det lykkedes ikke måske fordi jeg ikke er helt med. Kunne du komme med et mere præsis syntaks,du kan få de informationer som du har brug for.På forhånd tak.
Du skal indsætte en Where komanndo som jeg har beskrevet ovenfor. Mellem dine tre tabeller må der jo være en sammenhæng ikke?. Altså en måde hvorpå du kan sige hvilke tubler(rækker) fra de forskellige tabeller der skal sættes sammen med de andre tabeller ik. Du er jo ikke ligeglad med hvordan den klasker dem sammen!. Så du skal sige til Access hvad det er den skal sammenligne for at den kan finde ud af at samle tabellerne. Husk Access opfatter ikke en tabel som du gør: en række med data, den ser den som en klump data unden er logisk rækkefølge, så for access er der ikke nogen logisk måde at joine tabellerne på!. Du skal angive hvordan!!!. hvis du stadig ikke kan, så beskriv hvilke atributter dine tabeller har. altså dine kolonne overskrifter.
Jeg har løst problemet på en meget enkelt måde ,jeg har i Access forbunden de tre tabeller med relationer , til tabel som jeg kalder total og i den har jeg ingen problemer med INSERT INTO ,fra VB6 . Selv om jeg har løst problemet .kunne jeg alligevel godt tænke mig om en ville give mig insigt over overstående procedure, som jeg kan forstå.
Ja det er gør reelt det samme, nu kender Access dien join conditions og hvis du undsersøge den autogenerede SQL query vil du se at nu har selv lavet den WHERE line som du ikke selv fik lavet!!.
Du får nok ikke nogen at give dig mere indsigt da det er sådan det fungerer!!:
Du bliver nødt til at begyndere at studere databaser hvis du vil forstå havd der sker. Specielt når nu denne lille tinge giver dig problemer, så er der mange andre ting du nok også vil problemer med.!
Eller også er du bare dum! der er nok forklaringen.
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.