Du försöker uppdatera fältet Datum, men du har ändå med det fältet i WHERE-satsen? Verkar skumt att du vill uppdatera datumet till 2002-04-13 på ett fält där datumet redan är det. Mycket möjligt att det är det som ställer till det också.
Jag har ändå ett problem.
Om vi utgår ifrån att det inte ligger någon uppgift i databasen om Världen, men jag vill uppdatera den. Alltså strPlacVrld = Text3(3).text
Då blir ju SQL:en
If Not IsNull(strPlacVrld) Or Len(strPlacVrld) > 0 Then
SQL = "Update t_placering "
SQL = SQL & " Set Datum = #" & strDatum & "#, Placering
=" & strPlacVrld & " WHERE ArrNo ='" & strID & "' AND datum =
#" & List4.Text & "# AND omr_id = 3"
minDB.Execute SQL
Debug.Print SQL
End If
Jag har nog tänkt lite galet.
Jag glömde bort att för varje område så är det en ny post.
Oråde har då följande
1 = Sverige
2 = Europa
3 = Världen
Att jag inte kan uppdatera en tom post säger ju sig självt .
Vad jag nu försöker med är att i den SQL:en kolla om placering 3 är tomt eller inte.
Så här:
If Not IsNull(strPlacEu) Or Len(strPlacEu) > 0 Then
SQL = "Update t_placering "
SQL = SQL & " Set Datum = #" & strDatum & "#, Placering
=" & strPlacEu & " WHERE ArrNo ='" & strID & "' AND datum = #"
& List4.Text & "# AND omr_id = 2"
minDB.Execute SQL
End If
If Not IsNull(strPlacVrld) Or Len(strPlacVrld) > 0 Then
Set mittRS1 = minDB.OpenRecordset("SELECT
t_Placering.ArrNo, t_Placering.Datum, t_Placering.Placering " & _
" FROM t_Placering WHERE ArrNo ='" & strID & "' AND
datum = #" & List4.Text & "# AND omr_id = 3")
If mittRS1.EOF Then
SQL = "INSERT INTO t_placering(Datum,Omr_Id,Placering,ArrNo) VALUES(#" & strDatum & "#,3,'"
& strPlacVrld & "', '" & strID & "'"
Else
SQL = "Update t_placering "
SQL = SQL & " Set Datum = #" & strDatum & "#,
Placering =" & strPlacVrld & " WHERE ArrNo ='" & strID & "' AND
datum = #" & List4.Text & "# AND omr_id = 3"
End If
minDB.Execute SQL
End If
Jag tror att jag är på rätt väg, men jag får ett syntax medelande:
RunTime Error 3134
Syntax ERROR in INSERT INTO statement.
Jag tror att det är där jag vill ha in omr_Id vars värde skall vara 3
Vad tror ni?
Tack @nders, nu fungerade den biten.
Har nu bara ett(vad jag vet) problem kvar.
Om det har funnits en makering i i världen, och jag tar bort den och vill uppdatera, så försvinner värdet, men det ersätts av en nolla!!
Hur får jag bort det??
Jag tror att du förstår bätre om jag nu visar all kod för dig.
If Not IsNull(strPlacEu) Or Len(strPlacEu) > 0 Then
SQL = "Update t_placering "
SQL = SQL & " Set Datum = #" & strDatum & "#, Placering
=" & strPlacEu & " WHERE ArrNo ='" & strID & "' AND datum = #" & List4.Text & "# AND omr_id = 2"
minDB.Execute SQL
End If
If Not IsNull(strPlacVrld) Or Len(strPlacVrld) > 0 Then
Set mittRS1 = minDB.OpenRecordset("SELECT
t_Placering.ArrNo, t_Placering.Datum, t_Placering.Placering " & _
" FROM t_Placering WHERE ArrNo ='" & strID & "' AND
datum = #" & List4.Text & "# AND omr_id = 3")
If mittRS1.EOF Then
SQL = "INSERT INTO t_placering
(Datum,Omr_Id,Placering,ArrNo) VALUES(#" & strDatum & "#,3,'" & strPlacVrld & "', '" & strID & "')"
ElseIf IsNull(strPlacVrld) Or Len(strPlacVrld) = 0 Then
SQL = "delete from t_placering WHERE ArrNo ='" &
strID & "' AND datum = #" & List4.Text & "# AND omr_id = 3"
Else
SQL = "Update t_placering "
SQL = SQL & " Set Datum = #" & strDatum & "#,
Placering =" & strPlacVrld & " WHERE ArrNo ='" & strID & "' AND
datum = #" & List4.Text & "# AND omr_id = 3"
End If
minDB.Execute SQL
End If
Jag är inte säker på att den kommer till delite, det är väll därför
som det blir en nolla?