Acess vba et modification d'un champs dans une base
Fermé
Loic
-
29 juil. 2014 à 23:32
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 30 juil. 2014 à 15:32
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 30 juil. 2014 à 15:32
A voir également:
- Acess vba et modification d'un champs dans une base
- Suivi de modification word - Guide
- Logiciel modification pdf gratuit - Guide
- Formules excel de base - Guide
1 réponse
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
30 juil. 2014 à 15:32
30 juil. 2014 à 15:32
Bonjour,
Sub test()
Dim db As DAO.Database
Dim myrst As DAO.Recordset
Dim temp() As String, i As Integer, resultat As String
'tu definis quelle est la BD étudiée, c'est celle qui est courante..
Set db = CurrentDb
'nom de ta table
matable = "Table1"
monAutreTable = "TABLE_2"
sSQL = "SELECT id,Nom,Avancement from " & matable & " ORDER BY id "
'tu definis ton recordset qui va contenir le resultat de la requete
Set myrst = db.OpenRecordset(sSQL)
'si le recordset n'est pas vide
If Not myrst.EOF Then
' tant qu'il n'est pas vide
Do While Not myrst.EOF
'recuperation des valeurs pour tes 3 champs
temp = Split(myrst.Fields("Avancement").Value, ";")
If UBound(temp) > 0 Then
'init resultat a chaque tour
resultat = " "
For i = 0 To UBound(temp)
If temp(i) = "Refus" Then
resultat = "Refus"
ElseIf temp(i) = "A contacter" Then
'?????????????????????????? pourquoi voir init resultat
If resultat <> "Refus" Then
resultat = "A contacter"
End If
ElseIf temp(i) = "Signe" Then
'????????????????????????? pourquoi voir init resultat
If resultat <> "Refus" Or resultat <> "A contacter" Then
resultat = "Signe"
End If
End If
Next i
requete = "Update [" & matable & "] SET [Resultat] = [" & resultat & "] where [id] =[" & myrst.Fields("id").Value & "];"
DoCmd.RunSQL (requete)
End If
'a faire meme si le champ Avancement est vide
myrst.MoveNext
Loop
End If
myrst.Close
Set myrst = Nothing
db.Close
End Sub