Avatar billede vb-wanna-b Nybegynder
05. januar 2004 - 11:07 Der er 8 kommentarer

Loop virker ikke

Dim strFldName1 As String
Dim strfldName2 As String
Dim i As Integer

Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset

  Set rs1 = New ADODB.Recordset
  Set rs2 = New ADODB.Recordset
 
DoCmd.SetWarnings False
 

rs1.Open "Select SerieNr from IT_tilmeld", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic
rs2.Open "Select DISTINCT SerieNr from support", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic
    For i = 0 To rs1.Fields.Count - 1
    strFldName1 = rs1.Fields(i).Value
    strfldName2 = rs2.Fields(i).Value
      If strFldName1 <> strfldName2 Then
                      DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  '" & strFldName1 & "', Historik FROM DummySupport"
           
      End If
    Next i
   
rs1.Close
rs2.Close

det ser ikke ud til at loopet kører mere end én gang igennem. I dette tilfælde bør den køre tre gange, da der er tre records i IT_tilmeld den bør indsætte
Avatar billede eagleeye Praktikant
05. januar 2004 - 11:22 #1
Så skal du hvade et do while not rs1.EOF ...kode... loop omkring. Ellers tager den kun den føste record. For sætningen looper kun gennem kolonneerne for en record:


rs1.Open "Select SerieNr from IT_tilmeld", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic

do while not rs1.EOF
  rs2.Open "Select DISTINCT SerieNr from support", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic
    For i = 0 To rs1.Fields.Count - 1
    strFldName1 = rs1.Fields(i).Value
    strfldName2 = rs2.Fields(i).Value
      If strFldName1 <> strfldName2 Then
                      DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  '" & strFldName1 & "', Historik FROM DummySupport"
           
      End If
    Next i

  rs1.Movenext  'vigtig for ikke at få et uendeligt loop
loop
Avatar billede vb-wanna-b Nybegynder
05. januar 2004 - 11:27 #2
når jeg kører funktionen (i en kommando knap) får jeg at vide at "handlingen ikke er tilladt når objektet er åbent
Avatar billede eagleeye Praktikant
05. januar 2004 - 11:31 #3
Arh det er for rs2 så den skal ogsdå ud foran loopet:


rs1.Open "Select SerieNr from IT_tilmeld", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic
rs2.Open "Select DISTINCT SerieNr from support", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic

do while not rs1.EOF
    For i = 0 To rs1.Fields.Count - 1
    strFldName1 = rs1.Fields(i).Value
    strfldName2 = rs2.Fields(i).Value
      If strFldName1 <> strfldName2 Then
                      DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  '" & strFldName1 & "', Historik FROM DummySupport"
           
      End If
    Next i

  rs1.Movenext  'vigtig for ikke at få et uendeligt loop
loop
Avatar billede eagleeye Praktikant
05. januar 2004 - 11:31 #4
Hvis der også er 3 poster i rs2 så skal der også en rs2.Movenext ind.
Avatar billede vb-wanna-b Nybegynder
05. januar 2004 - 11:36 #5
det kan der sagtens være...
men det der står i rs1 skal sammenlignes med alt fra rs2 og hvis ikke der findes et match i rs2 skal RunSQL køres....
Avatar billede terry Ekspert
05. januar 2004 - 16:00 #6
vb-wanna-b>is there only ONE record in rs2 or can there be more than one? DISTINCT just makes sure that you only get each SerieNr once, but if there are more than one DISTINCT then you will need to loop.

It shard to give a solution when we dont know exactly what you are trying to do!
Avatar billede vb-wanna-b Nybegynder
05. januar 2004 - 16:20 #7
solved....due to stupidity.. I just saw that I based my form on support which can be empty...creating a new form based on IT_tilmeld solved that hole mess...geez...I made that formular so long ago, that it was a pure luck I saw it....
Avatar billede terry Ekspert
01. februar 2004 - 20:43 #8
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester