Bonjour,
Je me permet de demander de l'aide car impossible de trouver l'erreur depuis 1 jour ^^ .*
Je développe actuellement un outil de suivi qui est censé mettre à jour une sa base de données Access via un extract quotidien de 150000 ligne et 98 Colonnes.
Pour l'ouverture du Fichier TxT sur Excel et charger les données dans l'Array pas de soucis j'ai su faire (je ne garde que 7 colonnes au final).
Par contre quand je dois boucler sur mon array pour comparer les valeurs de la DB (stocker sur des dicos) avec celle de l'array et éventuellement ajouter ou update la ligne.
Malheureusement après avoir épluché le net, il me pète une erreur à la première boucle ^^
j'ai bien mon array en variable local avec toutes mes valeurs dedans comme ceci :
(0,0) val1
(0,1) val2
(0,2) val3
(0,3) val4
(0,4) val5
(0,5) val6
(0,6) val7
(1,0) val1
(1,1) val2
(1,2) val3
(1,3) val4
etc...
Msg d'erreur : Index was outside the bounds of the array
code
J'ai aussi essayer toto = MyArray(i, 0)) même erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Dim rng As Excel.Range = xlWorkSheet.Range("A2:G" & Nbligne) Dim MyArray As Object(,) = CType(rng.Value, Object(,)) 'requete addnew Sql = "SELECT *FROM Tbl_Prix Where [N°] = 0" Call Rq_DB(Sql) For i = 0 To UBound(MyArray) If dico_REF.ContainsKey(CStr(MyArray(i, 0))) = False Then <<<< erreur ici 'Addnew line rsdb.AddNew() rsdb.Fields("1").Value = CStr(MyArray(i, 0)) rsdb.Fields("2").Value = CStr(MyArray(i, 1)) rsdb.Fields("3").Value = CStr(MyArray(i, 2)) rsdb.Fields("4").Value = CStr(MyArray(i, 3)) rsdb.Fields("5").Value = CStr(MyArray(i, 4)) rsdb.Fields("6").Value = CStr(MyArray(i, 5)) rsdb.Fields("7").Value = CStr(MyArray(i, 6)) rsdb.Update() end if
Alors juste pour préciser le VB.net c'est assez récent pour moi, j'ai développé 5 ans en VBA et j'ai du coder des millier de boucles sans jamais de problème donc j'ai pas encore la logique VB.
socle : Visual studio express 2012
Merci d'avance.
Peall
Partager