Jag får felmeddelandet "Multiple-step operation generated errors. Check each status value." Vad menas med det/vad betyder det? Jag får felmeddelandet när recordcount är 9 på raden där det står DbEnd = .. Jag skulle sätta 5 spänn på att datumet i den cellen inte är korrekt skriven, lista ut alla datumen och se vad du får. Jag reserverar mig för det felet om cellen är null. Det kan också vara så att den cellen inte är av formatet datum - då kan du nog också få den typen av fel. Hm.. Jag tittade på alla posterna och jag kunde inte hitta något som var direkt fel. Iaf, så här ser hela tabellen ut: När man får all info är det lättare :-) Nej.. enligt min sql sats så tankar jag inte hem alla(*) kolumnerna, enbart ett par specifika. Därmed är rst(3) och rst(4) rätt. (Notera att errorn kommer först vid absoluteposition=9, med andra ord har andra poster 'godkänts')."Multiple-step operation generated errors"
Just den posten i databasen är inte speciell på något vis.
<code>
Set objRst = objCon.Execute(Sql) 'kör sqlfrågan
If objRst.RecordCount > 0 Then ' Ifall det finns några bokningar..
For I = 1 To objRst.RecordCount 'loopens sats ritar upp en bokning
Counter = 1
DbStart = CDate(objRst(3)) 'tempvariabel..
DbEnd = CDate(objRst(4)) 'tempvariabel.. '<---- Här är det error !!
If DbEnd - DbStart > 0 Then 'ifall delta datum är negativ..
DDiff = DbEnd - DbStart
If Day(DbStart) + DDiff > MyDaysInMonth Then
DDiff = MyDaysInMonth - Day(DbStart)
End If
Do Until objRst(2) = CInt(frmMain.RiFlxRoomInfo.TextMatrix(Counter + 1, 1)) 'tar reda på vilken rad(rum) det handlar om..
Counter = Counter + 1
Loop
For B = Day(DbStart) To Day(DbStart) + DDiff 'fyller i en cell för varje dag.
frmMain.RiFlxRoomInfo.Col = B + 1
frmMain.RiFlxRoomInfo.Row = Counter
RoomNrData(frmMain.RiFlxRoomInfo.Col - 1, frmMain.RiFlxRoomInfo.Row) = objRst(0)
frmMain.RiFlxRoomInfo.CellBackColor = MySettings.RoomStatus(objRst(1)).Color
Next B
Else 'delta datum var negativ
MsgBox LoadResString(149), vbInformation
End If
objRst.MoveNext
Next I
'----------------------------
Else 'det fanns inga bokningar..
MsgBox LoadResString(169), vbInformation
End If
</code>Sv:
Är det så - kan du använda if not IsDate(rst(3)) then .. för att kontrollera om du skall köra cDate.
Berätta gärna vad du kom fram till..
Hälsningar
/PelleSv:
SELECT id, status, room, date_start, date_end, room
FROM bookings
WHERE (
(date_start BETWEEN '2001-11-01' AND '2001-11-30')
OR
(date_end BETWEEN '2001-11-01' AND '2001-11-30')
) OR
(( date_start < '2001-11-01') AND ( date_end >= '2001-11-01'))
ORDER BY room;
mysql> select * from bookings;
+----+---------------+---------------------+---------------------+-------+-------------+------+--------+
| id | prim_customer | date_start | date_end | payed | paying_type | room | status |
+----+---------------+---------------------+---------------------+-------+-------------+------+--------+
| 1 | 26 | 2001-10-10 00:00:00 | 2001-10-15 00:00:00 | NULL | NULL | 3 | 1 |
| 2 | 27 | 2001-11-02 00:00:00 | 2001-11-15 00:00:00 | NULL | NULL | 3 | 1 |
| 3 | 28 | 2003-02-02 00:00:00 | 2003-02-08 00:00:00 | NULL | NULL | 3 | 1 |
| 4 | 29 | 2001-11-20 00:00:00 | 2001-12-03 00:00:00 | NULL | NULL | 3 | 1 |
| 5 | 30 | 2001-11-20 00:00:00 | 2001-12-03 00:00:00 | NULL | NULL | 3 | 1 |
| 6 | 31 | 2008-03-13 22:13:40 | 2008-03-13 22:13:40 | NULL | NULL | 3 | 0 |
| 7 | 32 | 2008-03-13 22:15:29 | 2008-03-04 22:15:29 | NULL | NULL | 3 | 0 |
| 8 | 33 | 2008-03-14 20:38:47 | 2008-03-14 20:38:47 | NULL | NULL | 0 | 0 |
| 9 | 1 | 2003-02-03 00:00:00 | 2004-01-25 00:00:00 | NULL | NULL | 7 | 3 |
| 10 | 34 | 2008-03-15 18:24:07 | 2008-03-15 18:24:07 | NULL | NULL | 0 | 0 |
| 11 | 35 | 2001-11-03 00:00:00 | 2001-11-04 00:00:00 | NULL | NULL | 25 | 3 |
| 12 | 35 | 2001-11-10 00:00:00 | 2001-11-29 00:00:00 | NULL | NULL | 23 | 2 |
| 13 | 35 | 2001-11-15 00:00:00 | 2001-11-17 00:00:00 | NULL | NULL | 12 | 3 |
| 14 | 1 | 2001-11-20 00:00:00 | 2001-11-22 00:00:00 | NULL | NULL | 8 | 4 |
| 15 | 1 | 2001-11-23 00:00:00 | 2001-11-25 00:00:00 | NULL | NULL | 8 | 5 |
| 16 | 1 | 2001-11-01 00:00:00 | 2001-11-31 00:00:00 | NULL | NULL | 20 | 5 |
+----+---------------+---------------------+---------------------+-------+-------------+------+--------+
16 rows in set (0.00 sec)
(Jag vet, jag ska ändra datatypen från datetime till date)
Blir någon klok på det?
mvh FransSv:
Du skriver rst(3) och rst(4). Rst 4 är fältet payed eftersom rst är zero-based. Skriv rst(2) och rst(3) alternativt rst("date_start") och rst("date_end")
/PelleSv:
I vilket fall som helst, det har löst sig. Jag var tvungen att testa Mysql i Windows, och byggde därmed om hela tabellen. Men vad det _exakt_ var som orsakade felet... det förblir oförklarat...
mvh Frans