Bonjour à tous.
J'ai créé ma base Access avec tout le nécessaire et depuis peu je l'ai migrée vers SQL Server Express.
J'ai dû revoir certaines fonction VB, notemment pour exécuter les requêtes (Ah les ADOBD.Connection !!!)
Seulement j'avais une fonction qui me permettait de lire dans un fichier texte et de prendre certaines lignes en fonction des valeurs de la ligne :
Mais cela ne fonctionne plus depuis la migration et j'ai essayé de transformer mes objets DAO en ADODB mais, comme c'est toujours le cas (sic), les méthodes DAO ne sont pas les mêmes en ADODB...
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Sub ImportTXT(toto As String) Dim txtLine As String Dim tabline() As String Dim LeFichier As String, chaine As String Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim F As Integer Dim dat As Variant LeFichier = "t:\test.txt" 'Ouverture de la base et de la table de destination Set dbs = CurrentDb Set rst = dbs.OpenRecordset("MaTable", dbOpenDynaset) F = FreeFile 'Ouverture du fichier texte Open LeFichier For Input As #F 'Lecture de la première ligne contenant les libellés de colonnes (inutiles) Line Input #F, txtLine Do While Not EOF(F) Line Input #F, txtLine 'séparation de chaque colonne dans un tableau tabline = Split(txtLine, ";") 'test sur l'agence (toto) chaine = tabline(3) dat = Empty If chaine = toto Then 'test sur la date vide If tabline(16) <> " " Then dat = CDate(tabline(16)) End If With rst 'affectation des cases du tableau à chaque colonne de la table .AddNew .Fields("semaine").Value = CLng(tabline(0)) .Fields("annee").Value = CLng(tabline(1)) .Fields("societe").Value = tabline(2) .Fields("agence").Value = tabline(3) .Fields("module").Value = tabline(4) .Update End With End If Loop Close #F rst.Close
Si vous avez un conseil ou une explication, je suis preneur!!
Merci d'avance!
Partager