Avatar billede hulla Novice
05. februar 2003 - 12:58 Der er 11 kommentarer og
1 løsning

sql fejl eller ??

Jeg har 2 Access Db som er næsten ens, en gammel og en ny.
I den gamle eksisterer nogle poster som jeg mangler i den nye.
Når jeg afvikler denne kode:

Sub Main()

  Set db = New Connection
  Set dbNew = New Connection
  db.ConnectionString= "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & "G:\Arbejdsarkiv\C5.mdb"
dbNew.ConnectionString= "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & "G:\Arbejdsarkiv\C5Test.mdb"
    db.Open
    dbNew.Open
 
    Set rs = db.Execute("SELECT * FROM Klienter")
   
    Dim bFound As Boolean
   
    While Not rs.EOF
      Set rsNew = dbNew.Execute("SELECT * FROM Klienter")
      bFound = False
         
            While Not rsNew.EOF
         
                If rs("Id") = rsNew("Id") Then
                    bFound = True
                End If
           
                rsNew.MoveNext
         
            Wend
         
        If bFound = False Then
         
  dbNew.Execute ("INSERT INTO Klienter (Id, Navn1, Navn2, Adresse1, Adresse2, PostNr, By, Land, Telefon, Telefax, Bank, Giro, Reg_Nr, SE, Import, PBSnr, Afd, Status, BrugesAf, Opdateret, Kontorsted) VALUES ('" & rs("Id") & "', '" & rs("Navn1") & "', '" & rs("Navn2") & "', '" & rs("Adresse1") & "', '" & rs("Adresse2") & "', '" & rs("PostNr") & "', '" & rs("By") & "', '" & rs("Land") & "', '" & rs("Telefon") & "', '" & rs("Telefax") & "', '" & rs("Bank") & "', '" & rs("Giro") & "', '" & rs("Reg_Nr") & "', '" & rs("SE") & "', '" & rs("Import") & "', '" & rs("PBSnr") & "', '" & rs("Afd") & "', '" & rs("Status") & "', '" & rs("BrugesAf") & "', '" & rs("Opdateret") & "', 'Kbh')")
           
        End If
       
        rs.MoveNext
       
    Wend
    rs.Close
    db.Close
   
    Set rs = Nothing
    Set db = Nothing
   
End Sub

får jeg følgende fejlmeddelelse:

Runtime error '-2147217900(80040e14)'

Der er syntaksfejl i INSERT INTO-sætningen.

Hvad er der galt ???
Avatar billede ocp Nybegynder
05. februar 2003 - 13:02 #1
Prøv i stedet:

dim sSQL as string

sSQL = INSERT INTO Klienter (Id, Navn1, Navn2, Adresse1, Adresse2, PostNr, By, Land, Telefon, Telefax, Bank, Giro, Reg_Nr, SE, Import, PBSnr, Afd, Status, BrugesAf, Opdateret, Kontorsted) VALUES ('" & rs("Id") & "', '" & rs("Navn1") & "', '" & rs("Navn2") & "', '" & rs("Adresse1") & "', '" & rs("Adresse2") & "', '" & rs("PostNr") & "', '" & rs("By") & "', '" & rs("Land") & "', '" & rs("Telefon") & "', '" & rs("Telefax") & "', '" & rs("Bank") & "', '" & rs("Giro") & "', '" & rs("Reg_Nr") & "', '" & rs("SE") & "', '" & rs("Import") & "', '" & rs("PBSnr") & "', '" & rs("Afd") & "', '" & rs("Status") & "', '" & rs("BrugesAf") & "', '" & rs("Opdateret") & "', 'Kbh')"

debug.print(sSQL)
'dbNew.Execute(sSQL)

...og post det så her i gruppen hvis det ikke er indlysende hvad der er galt.
Avatar billede hulla Novice
05. februar 2003 - 13:14 #2
den printer debuggen men den forsvinder med det samme så jeg aldrig når at se den,. hvad gør jeg ved det ?
Avatar billede hulla Novice
05. februar 2003 - 13:16 #3
aahhh ok,.. her er den:

INSERT INTO Klienter (Id, Navn1, Navn2, Adresse1, Adresse2, PostNr, By, Land, Telefon, Telefax, Bank, Giro, Reg_Nr, SE, Import, PBSnr, Afd, Status, BrugesAf, Opdateret, Kontorsted) VALUES ('102140', 'Frank Møller Christensen', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '301', '', 'TIP', '07-12-98  09:12:21', 'Kbh')
Avatar billede ocp Nybegynder
05. februar 2003 - 13:19 #4
Tror du ikke ID er numerisk? I så fald skal du fjerne '-erne omkring den. Du kan også prøve at sætte #-er omkring data i "opdateret"-feltet.
Avatar billede ocp Nybegynder
05. februar 2003 - 13:19 #5
ELLER også autogenererer den ID - i så fald skal den slet ikke med i dit statment.
Avatar billede hulla Novice
05. februar 2003 - 13:21 #6
ALT er string eller tekst, og ingen autogenerering
Avatar billede hulla Novice
05. februar 2003 - 13:23 #7
Det eneste der er med Id er at den er primærnøgle,..
Avatar billede hulla Novice
05. februar 2003 - 13:40 #8
Jeg har prøvet alt mulig nu,.. er der andre forslag,..??
Jeg har også prøvet at fjerne primærnøglen,..men med samme resultat
Avatar billede ocp Nybegynder
05. februar 2003 - 13:41 #9
Prøv at køre dit insert som query direkte i Access?
Avatar billede hulla Novice
05. februar 2003 - 14:00 #10
Det har jeg så også lige forsøgt,. og sætter jeg kun id ind og glemmer alt det andet virker det fint,.. men sætter jeg andre værdier ind går det galt.

Jeg har prøvet med følgende sætning direkte på access db :

INSERT INTO Klienter (Id, Navn1, Navn2, Adresse1, Adresse2, PostNr, By, Land, Telefon, Telefax, Bank, Giro, Reg_Nr, SE, Import, PBSnr, Afd, Status, BrugesAf, Opdateret, Kontorsted) VALUES ('113851', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
Avatar billede hulla Novice
05. februar 2003 - 14:19 #11
YEESSSSS Jeg har fundet det,.. :o)

Man må ikke bruge ordet "By" da det er et reserveret ord :o)
Avatar billede ocp Nybegynder
05. februar 2003 - 14:35 #12
Nå nej... Du kan bare sætte det i [], altså [By].
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