VBA et manipulation de BDD avec requêtes SQL
Bonjour à tous,
Je travaille actuellement sur un projet qui me demande une manipulation d'une base de données sous Access 97. Elle comprend une dizaine de tables et chacune d'entre elles comprend un bon nombre de champs.
Certains de ces champs sont de type "Memo".
Voici donc mon problème, je dois récupérer chacune des valeurs de tous les champs de type Memo de toutes les tables et les modifier.
Je suis débutant sur Access et rencontre donc quelques pépins.
Grâce à la FAQ et à quelques anciens posts, je suis arrivé à une ébauche succincte. J'ai réalisé quelques tests sur le champ d'une seule table mais sans succès.
Le soucis majeur, c'est que je n'arrive pas à récupérer la valeur du champ.
Par exemple, j'essaie d'afficher les valeurs comprises dans le champ "DESC" à travers une MsgBox mais cela ne fonctionne pas. Pourtant j'ai réussi à les afficher une fois, mais depuis plus moyen.
Voici mon code :
Code:
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
| Sub Main()
Dim db As Database
Dim Rs As Recordset
Dim Fd As Field
Dim Tables(11) As String
Dim NbChamps
Dim rSql As String
Dim resultat As Currency
Tables(1) = "table1"
Tables(2) = "table2"
Tables(3) = "table3"
Tables(4) = "table4"
Tables(5) = "table5"
Tables(6) = "table6"
Tables(7) = "table7"
Tables(8) = "table8"
Tables(9) = "table9"
Tables(10) = "table10"
Tables(11) = "table11"
Set db = OpenDatabase("C:\Users\Tuvia\Desktop\BDD.mdb")
rSql = "Select * From " & Tables(5)
Set Rs = db.OpenRecordset(rSql)
Rs.MoveFirst
While Not Rs.EOF
If (Rs("DESC") <> Null) Then
MsgBox (Rs![DESC])
End If
Rs.MoveNext
Wend
Rs.Close
db.Close
Set Rs = Nothing
Set db = Nothing
End Sub |
Une erreur d'invalid use of Null apparaît...
J'aimerai donc savoir ce qui ne va pas avec ce code ?
Par la suite, j'imaginais créer plusieurs tableaux de String comprenant le nom de chacun des champs d'une seule table et faire une boucle pour apporter les modifications à tous les champs concernés. J'aimerai également savoir s'il y a une manière plus simple et automatisé de réaliser une modification sur toute une BDD ou si ce que j'envisage est la meilleure solution ?
Je vous remercie d'avance pour toute l'aide apportée.
Tuvia.