Bon finalement j'ai trouvé une autre solution, qui est censée marcher mais qui marche pas :p
Donc tu peux lire le code pour comprendre, mais mon problème se trouve en bas de ce message ce n'ets donc plus nécessaire de lire :p
Je te passe toutes les Dim !
voilà le code ;)
Set dbTestForm = CurrentDb
strSQL = "SELECT COUNT(*) as plop FROM tblAsset"
Set rstTest = dbTestForm.OpenRecordset(strSQL)
CurrentDb.Execute "DELETE * FROM tblPC;"
i = 1
While (i <= rstTest("Plop"))
strSQL2 = "SELECT lIDAsset, sAssetTag, sLoginID FROM tblAsset WHERE lIDAsset = " & i & ""
Set rstTest2 = dbTestForm.OpenRecordset(strSQL2)
If IsEmpty("rstTest2") Then
Stop
Else
Tag = rstTest2(1)
Test = Split("" & Tag & "", "~")
Limite = UBound(Test)
If Limite = 3 Then
SN = Split("" & Test(3) & "", ".")
DoCmd.SetWarnings False
strSQL3 = "INSERT INTO tblPC(IDAsset, Shortname, Marque, Type, Modele, Serial_Number) Values('" & rstTest2(0) & "', '" & rstTest2(2) & "', '" & Test(0) & "', '" & Test(1) & "', '" & Test(2) & "', '" & SN(0) & "')"
DoCmd.RunSQL strSQL3
DoCmd.SetWarnings True
Final = Test(0)
Final2 = Test(1)
Final3 = Test(2)
Final4 = Test(3)
Debug.Print Final
Debug.Print Final2
Debug.Print Final3
Debug.Print Final4
i = i + 1
Else
SN = Split("" & Test(2) & "", ".")
DoCmd.SetWarnings False
strSQL3 = "INSERT INTO tblPC(IDAsset, Shortname, Marque, Type, Serial_Number) Values('" & rstTest2(0)& "', '" & rstTest2(2) & "', '" & Test(0) & "', '" & Test(1) & "', '" & SN(0) & "')"
DoCmd.RunSQL strSQL3
DoCmd.SetWarnings True
Final = Test(0)
Final2 = Test(1)
Final3 = Test(2)
Debug.Print Final
Debug.Print Final2
Debug.Print Final3
i = i + 1
End If
End If
Wend
End Sub
Vla, excuse moi pour l'incrémentation pourrie mais je vient de la faire spécialement pour toi :)
Sinon,
Maintenant à la place d'utiliser i, j'ai trouvé plus simple :
strSQL = "SELECT lIDAsset FROM tblAsset" ''' On sélectionne les ID de la table
Set rstTest = dbTestForm.OpenRecordset(strSQL) ''' On mets le résultats dans un recordset
Donc là j'ai récupérer tout les ID
ensuite la boucle devient un For :
For Each lIDAsset In rstTest
Execute
Next
Comme ca plus de problèmes d'ID inexistant !
Par contre ma boucle For foire, "runtime Error 3251 : Operation is not supported for this type of object"
:/
Merci !