Avatar billede enric Nybegynder
26. april 2001 - 21:48 Der er 8 kommentarer

Insert into

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
Avatar billede wizzcat Nybegynder
29. april 2001 - 18:54 #1
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\"
Avatar billede enric Nybegynder
30. april 2001 - 21:30 #2
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,
Avatar billede enric Nybegynder
30. april 2001 - 21:43 #3
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.
Avatar billede wizzcat Nybegynder
30. april 2001 - 22:20 #4
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.

Avatar billede enric Nybegynder
01. maj 2001 - 22:23 #5
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å.
Avatar billede wizzcat Nybegynder
01. maj 2001 - 22:31 #6
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.!

Held og lykke :)
Avatar billede wizzcat Nybegynder
01. maj 2001 - 22:38 #7
HUSK et gammelt ordsprog: man kan tvinge en hest til truget, men man ikke tvinge den til at drikke...
Avatar billede wizzcat Nybegynder
03. juni 2001 - 18:52 #8
Eller også er du bare dum! der er nok forklaringen.
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