Vinnaren i pepparkakshustävlingen!
2006-11-08, 21:46
  #1
Medlem
Hej.
Jag får inte följande SQL-sats att funka. Vad gör jag för fel?

Dim stDocName As String
Dim stLinkCriteria As String
Dim stUppdragstyp As String

stUppdragstyp = "SELECT Uppdragstyper.Uppdragstyp" _
& "FROM Uppdragstyper INNER JOIN Uppdrag ON Uppdragstyper.Uppdragstypnr = Uppdrag.Uppdragstypnr" _
& "WHERE Uppdrag.Kundnr= #" & Forms!PreselectEvent2!PreSelKundKombo & "# AND Uppdrag.Uppdragsnr = #" & Forms!PreselectEvent2!PreSelUppdragsKombo & "#;"

Behöver Du mer info för att kunna hjälpa mig så säg vänligen till.

Jag är synnerligen tacksam för all tänkbar hjälp. Också anvisningar på lämplig litteratur emottas med största intresse.

Hälsningar

Rollerplane
Citera
2006-11-08, 22:29
  #2
Medlem
äppelkakas avatar
Det saknas mellanslag i din sql-sträng. På de ställen där du kör &.
Citera
2006-11-08, 23:17
  #3
Medlem
SQL - VBA Access 2003

Hej Äppelkaka och tack för tipset. Jag har försökt enligt nedan men det går ändå inte.

Private Sub PreSelFormKnapp_Click()
On Error GoTo Err_PreSelFormKnapp_Click

Dim stDocName As String
Dim stLinkCriteria As String
Dim stUppdragstyp As String

stUppdragstyp = "SELECT Uppdragstyper.Uppdragstyp " _
& " FROM Uppdragstyper INNER JOIN Uppdrag ON Uppdragstyper.Uppdragstypnr = Uppdrag.Uppdragstypnr " _
& " WHERE Uppdrag.Kundnr= #" & Forms!PreselectEvent2!PreSelKundKombo & "# AND Uppdrag.Uppdragsnr = #" & Forms!PreselectEvent2!PreSelUppdragsKombo & "#;"

Hälsningar

Rollerplane
Citera
2006-11-08, 23:38
  #4
Medlem
korbens avatar
Till att börja med, använd ett kodblock när du klistrar in kod i ett inlägg så att det blir lättare att läsa.

Ett bra tips när man felsöker SQL-frågor är att skriva ut hela SQL-satsen så att man kan se exakt hur den kommer att se ut när den skickas till databashanteraren.
Kod:
Response.Write(strUppdragstyp)

Är du säker på att det skall vara #- tecken runt värdena i din WHERE sats? Om det är integer-fält i databasen så har jag för mig att det inte skall vara något tecken alls runt värdet.
Citera
2006-11-09, 00:03
  #5
Moderator
Ruskigbusss avatar
Mjo, visa strukturen på tabellen. Och gärna vilket felmeddelande du får.
Citera
2006-11-09, 12:11
  #6
Medlem
SQL-sats i VBA för Access 2003

Hej igen!

SQL-sats i VBA för Access 2003

Tack för Era vänliga kommentarer. Följande gäller:

Uppdragstyper och Uppdrag är tabeller.
Uppdragstyper.Uppdragstyp, Uppdragstyper.Uppdragstypnr, Uppdrag.Uppdragstypnr, Uppdrag.Kundnr är fält.
Fältet Uppdragstyp är Text
Fälten Uppdragstypnr, Uppdragsnr och Kundnr är tal.
PreselectEvent2 är ett formulär
PreSelKundKombo och PreSelUppdragsKombo är komboboxar, PreSelFormKnapp är en kommandoknapp på formuläret PreSelectEVent2.

Jag har nu försökt med mellanslag och borttag av #-tecknen men tyvärr fortfarande utan framgång.

När jag stegar programmet kan jag läsa av värdena för Komboboxarna i Lokalfönstret helt korrekt (alltså Kundnr och Uppdragsnr) men när jag stegar förbi SQLsatsen så ”biter” den inte. Jag får heller inget felmeddelande.

Jag tror jag gör ett syntaxfel men har haft svårt att hitta någon verkligen noggrann handledning om exakt hur man gör.

Tacksam för Er hjälp!

Rollerplane
Citera
2006-11-09, 12:37
  #7
Medlem
SQL-fråga i VBA för Access 2003

Hej igen.

Jag kanske skulle nämna att min SQL-sats fungerar alldeles utmärkt som fråga i Access. Jag får fram stUppdragstyp. Anledningen till att jag inte använder en fråga utan vill ha VBA är att det är åtta olika formulär som skall öppnas beroende av utfallet på SQL-frågan. Den IF-satsen görs bäst i VBA.

Än en gång tack assistans!

Rollerplane
Citera
2006-11-10, 10:53
  #8
Medlem
macka-pärs avatar
Citat:
Ursprungligen postat av rollerplane
stUppdragstyp = "SELECT Uppdragstyper.Uppdragstyp " _
& " FROM Uppdragstyper INNER JOIN Uppdrag ON Uppdragstyper.Uppdragstypnr = Uppdrag.Uppdragstypnr " _
& " WHERE Uppdrag.Kundnr= #" & Forms!PreselectEvent2!PreSelKundKombo & "# AND Uppdrag.Uppdragsnr = #" & Forms!PreselectEvent2!PreSelUppdragsKombo & "#;"

Hinner bara kolla snabbt inna jag rusar iväg. Kommentarer:

Access förlåter dig om du inte har semikolon i slutet på SQL-satsen.

Tecknet # används som datumavgränsare (tex #4/11/2006#) och den kan du alltså ta bort eftersom du använder datatypen tal.

Använd funktionen Nz för att göra om Null-värden till noll, annars kan sådant sabba den strängen:

Alltså:
Kod:
stUppdragstyp = "SELECT Uppdragstyper.Uppdragstyp " _
 & " FROM Uppdragstyper INNER JOIN Uppdrag ON Uppdragstyper.Uppdragstypnr = Uppdrag.Uppdragstypnr " _
 & " WHERE Uppdrag.Kundnr= " & Nz(Forms!PreselectEvent2!PreSelKundKombo,0) & " AND Uppdrag.Uppdragsnr = " & Nz(Forms!PreselectEvent2!PreSelUppdragsKombo,0)
Citera
2006-11-11, 15:44
  #9
Medlem
SQL-sats i VBA för Access 2003

Hej och tack för Era vänliga förslag!

Tyvärr får jag meddela att ingenting hjälpt och jag bifogar nedan sql-satsen i dess nuvarande skick efter Era förslag.

Dim stDocName As String
Dim stLinkCriteria As String
Dim stUppdragstyp As String

stUppdragstyp = "SELECT Uppdragstyper.Uppdragstyp " _
& " FROM Uppdragstyper INNER JOIN Uppdrag ON Uppdragstyper.Uppdragstypnr = Uppdrag.Uppdragstypnr " _
& " WHERE Uppdrag.Kundnr= " & Nz(Forms!PreselectEvent2!PreSelKundKombo, 0) & " AND Uppdrag.Uppdragsnr = " & Nz(Forms!PreselectEvent2!PreSelUppdragsKombo, 0) & ";"


Jag håller på att bli lätt noskig på denna förjolade sql-sats.

Är tacksam för varje förslag.

Hälsningar

Rollerplane
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback