Hej behöver lite hjälp med en klurig SQL sats. jag kan bara tänka mig det går med en cursor men det funkar inte i access. Jag tror nog att enklaste vägen för dig är att öppna tabellen och i vb ha kontroll på ditt fältvärde. <code>SQL fråga
jag har en tabell med rullande schematider (1-28 dagar) som jag kopierar till en nytabell och skall sedan fixa till att datumet blir rätt.
poster i tabellen EmpSchedule
ES_Day = (vilken dag i det rullande schemat exempelvis dag 02)
ES_Date = (här skall datumet in)
...
Vad jag vill göra är att när jag väljer ett startdatum skall detta datum sättas in i ES_Date i tabellen EmpSchedule där ES_Day är lika med 01, sedan skall datumet ökas på med motsvarande steg för ES_Day.
kom fram tillföljande men det fungerar ju inte.
UPDATE EmpSchedule Set ES_Date= (Startdatum + ES_day -1)
använder mig av vb6 och access
Hjälp!!!!!!!!Sv: SQL fråga
<code>
rst.open "empschedule", con, 3,3
antal = 1
do while not rst.eof
rst.edit
rst("es_date") = (din förutsättning och nåt med antal)
rst.update
rst.movenext
antal = antal + 1
loop
</code>
Men om du utgår från 2 befintliga datum kan du använda en sqlsats tillsammans med dateadd för att lösa det men det låter som jag missat nåt och tror inte det är det du är ute efter.
update empschedule set es_date = dateadd("d", -1, es_day)Sv: SQL fråga
Set rst = CreateRecordset("EmpSchedule", dbOpenAsTable)
Do While Not rst.EOF
Datumet = rst("ES_Day")
SQL = "UPDATE EmpSchedule SET ES_Date ='" & Format((DTPicker1.Value + Datumet - 1), "yyyyMMdd") & "'" & " WHERE ES_Day ='" & Format(Datumet, "00") & "' AND ES_Status='0'"
Con.Execute SQL
rst.MoveNext
Loop
</code>
Så här blev min lösning på det hela. Nedan är hela min kopieringskod!
Någon som har en bättre lösning få ni gärna hojta till!
Denb här lösningen fyller i alla fall mitt behov!
<code>
Dim strSQL As String, SQL As String, Datumet As Long
ConErrHandler
Set rst = CreateRecordset("Schedule", dbOpenAsQuery)
strSQL = "INSERT INTO EmpSchedule (ES_Day, ES_Pos, ES_In, ES_Out, ES_Hours, ES_Emp, ES_Status)" & vbCrLf & _
"SELECT S_Day, S_Pos, S_In, S_Out, S_Hours, S_Emp, S_Status" & vbCrLf & _
"FROM Schedule" & vbCrLf & _
"WHERE S_Emp>'0'"
Con.Execute strSQL
Set rst = CreateRecordset("EmpSchedule", dbOpenAsTable)
Do While Not rst.EOF
Datumet = rst("ES_Day")
SQL = "UPDATE EmpSchedule SET ES_Date ='" & Format((DTPicker1.Value + Datumet - 1), "yyyyMMdd") & "'" & " WHERE ES_Day ='" & Format(Datumet, "00") & "' AND ES_Status='0'"
' kör insert
Con.Execute SQL
rst.MoveNext
Loop
Set rst = CreateRecordset("EmpSchedule", dbOpenAsTable)
SQL = "UPDATE EmpSchedule SET ES_Status='C'"
Con.Execute SQL
rst.Close
StopConnection
</code>