Hej,
Jag har följande kod:
sSQL= "SELECT [tbltask].[TaskNr], [tblTask].[Id] AS TaskId, [tblTodo].[Id] AS TodoId" _
& " FROM [tblTask]" _
& " INNER JOIN [tblTodo]" _
& " ON [tblTask].[Id] = [tblTodo].[OwnerId]" _
& " WHERE [tblTodo].[DefId] = 10002 AND [tbltodo].[OwnerType] = 2 AND [tblTodo].[CompletedBy] = ''"
Rs.Open sSQL, Conn
'Om det inte finns några poster, avsluta suben
If Rs.EOF then exit sub
'Loopa ut alla uppdragsidena
while Not Rs.EOF
lTaskId=Rs("TaskId")
lTodoId=Rs("TodoId")
sTaskNr=Rs("TaskNr")
if not IsNumeric(lTodoId) then exit sub
call GetOrderNo(sTaskNr, lTaskId)
call Application.MarkTodoCompleted(lTodoId)
Rs.MoveNext
wend
Funktionen GetOrderNo(sTaskNr, lTaskId) ser ut som nedan:
'Funktion för att hämta ordernummer
Function GetOrderNo(sTaskNr, lOwnerId)
dim sSQL, Conn
'Öppna databasen
Set Conn=CreateObject("ADODB.Connection")
Conn.Open Application.sDbConnectionString
sSQL ="INSERT INTO [Uppdrag Nu].dbo.[tblExtraFielddata] ( [Value], [FieldId], [OwnerId], [Modified] )" _
& " SELECT [OrdNo], 10040, " & lOwnerId & ", getdate() FROM [F0100].dbo.[Ord] WHERE [WebPg] = '" & sTaskNr & "'"
Conn.Execute sSQL
Set Conn=Nothing
End function
Allt fungerar precis som det ska, men jag tycker inte riktigt om att göra ett databasanrop i en loop... Kan man göra på något annat, bättre sätt?
Mvh
Henrik