Avatar billede claval Nybegynder
29. februar 2008 - 11:50 Der er 3 kommentarer

SQL eller General ODBC fejl

Hej

Jeg har stirret mig blind på et problem som jeg håber nogen kan hjælpe med.

Når jeg kører følgende makro

Dim dato As Variant
    Sheets("Test").Select
    dato = Range("J12").Value
    Debug.Print dato
    Sheets("Salgsfakturahoved").Select
    Range("A1").Select
   
    With selection.QueryTable
        .Connection = Array(Array( _
        "ODBC;DSN=NAVI RS;CSF=Yes;SName=server1;NType=tcp;PPath=C:\Program Files\Navision Financials;OPT=Text;IT=All Except DOT;QTYesNo=Yes;R" _
        ), Array("O=No;CC=Yes;BE=Yes;UID=combo;;CN=xxxxxxx A/S;SERVER=N;"))
        .CommandText = Array( _
        "SELECT Salgsfakturahoved.Nummer, Salgsfakturahoved.Ordrenr_, Salgsfakturahoved.Bogføringsdato, Salgsfakturahoved.Beløb, Salgsfakturahoved.Kundenavn, Salgsfakturahoved.Kundenr_, Salgsfakturahoved.Udskr" _
        , _
        "evet, Salgsfakturahoved.""Modt_-/EAN-Lokationskode""" & Chr(13) & "" & Chr(10) & "FROM Salgsfakturahoved Salgsfakturahoved" & Chr(13) & "" & Chr(10) & "WHERE (Salgsfakturahoved.Bogføringsdato=" & dato & ")" _
        )
        .Refresh BackgroundQuery:=False
         
       
    End With
End Sub

_______________
returnere query´en en SQL fejl. Den indsætter det rigtige i datoofeltet i qurey´en, hvilket betyder at jeg bare kan trykke returner data, det skulle makroen bare gerne selv gøre.


Feltet i Excel hvor variablen hentes er her et text felt, jeg har prøvet med forskellig andre formater, men de indsætter mange forrykte ting i kriteriefeltet i query´en.

Vi mistænker at det måske kan skyldes datofeltet i Navision for det volder os intet besvær at indsætte data i andre kriteriefelter. Den synlige forskel er at de felter hvor det er lykkeds os er klammet ind i '' i kriteriefeltet, hvor denne forespørgelsel på datfeltet er klammet ind i ##.

Håber nogen kan hjælpe mig ud af dette dødvande.

PFT
Mvh.
Claus
Avatar billede terry Ekspert
29. februar 2008 - 17:05 #1
Not sure I fully understand the problem so I'll just guess its something to do with your date paramater in the SQL.

"WHERE (Salgsfakturahoved.Bogføringsdato = '" & dato & "')" _
Avatar billede claval Nybegynder
03. marts 2008 - 09:21 #2
Hey Terry

I fully agree to your pin pointing the whereabouts of the problem. Only problem is what else to insert. As I mentioned earlier we have no problems inserting data that seems to have an other format than this particular field (witch is a date).
Avatar billede terry Ekspert
03. marts 2008 - 19:33 #3
Hi Claus
First, I have no problem with Danish, just too lazy (not so good) to write in Danish.

In the code you give you are build an SQL SELECT statement, but you also mention insert so I just want to make sure that it is a SELECT you are having problems with, is that correct?

I also better add that I dont know much at all about Excel so I'm not going to be of much use there.

You also say "Den indsætter det rigtige i datoofeltet i qurey´en" but later say
"Vi mistænker at det måske kan skyldes datofeltet i Navision .."

Navision! This is actually MSQ SQL Server category, but nevre mind :o)

If we assume that a date field in Navision can only contain valid dates then cant we assume that the date parameter in the SQL  might not be correct?

An idea would to be to copy the SQL from Excel into Navision an dtest it there, it will very likley be more specific if it isnt valid.


I dont undersatnd what your trying to say here, I se no # characters!

"Den synlige forskel er at de felter hvor det er lykkeds os er klammet ind i '' i kriteriefeltet, hvor denne forespørgelsel på datfeltet er klammet ind i ##."
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
Computerworld tilbyder specialiserede kurser i database-management

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