j'ai un enorme souci sur access VBA.
apres importation d'un fichier dans une table, je suis amené à retraiter l'ensemble des info de la table pour en creer une nouvelle sans doublons.
En effet, des infos qui devront etre dans un seul enregistrement sont à présent reparties dans plusieurs.
Je n'arrive pas à mette la main sur de la doc concernant la parcours conditionnel (nb de ligne à l'origine des futures enregistrement est variable) des enregistrements d'une base.
Si qqun a deja été confronté au pb, ou connait et/ou dispose d'une doc bien fournit sur ce theme je suis particlièrement interesse.
par avance merci, a bientot
A voir également:
Access VBA, certainement bien mais pas top pour l'instant
Je ne pense pas que ça soit un problème pour récupérer les enregistrements unique.
Il faut évidemment parcourir la table d'origine et pour chaque ligne, tester dans la table de destination si l'enregistrement existe. S'il n'existe pas, on l'insère sinon on passe à l'enregistrement suivant.
Je resume :
dim dbd as database
dim rs as recordset
dim rt as recordset
dim sTemp as string
dim ssql as string
set dbd = Currentdb
set rs = dbd.openrecordset(TableSource)
do while not rs.EOF
sTemp = rs("CHAMP1")
ssq = "SELECT * FROM TableTarget " ssql ssql & "where Champ1 '" & sTemp & "';"
set rt = dbd.openrecordset(ssql)
if rt.recordcount <> 0 then
ssql = "INSERT INTO TableTarget (Champ1)"
ssql = ssql & " VALUES ('" & sTemp & "');"
dbd.execute ssql
end if
rs.movenext
loop
Après quelques neurones grillé et quelques litres de caféine
voici, pour information la solution à mon problème...
Sub TraitemementAnnonce()
Dim dbd As Database
Dim rs As Recordset
Dim w_codsir As String
Set dbd = CurrentDb
Set rs = dbd.OpenRecordset("Bodacc0208", dbOpenTable)
Do While Not rs.EOF
If rs![C2] = "MVT" Then
rs.Edit
rs![Champ1] = rs![C3]
rs.Update
End If
rs.MoveNext
Loop
Set rs = dbd.OpenRecordset("Bodacc0208", dbOpenTable)
Do While Not rs.EOF
If rs![C2] = "MVT" Then
w_codsir = rs![Champ1]
End If
If rs![C2] <> "MVT" And rs![Champ1] = "" Or IsNull(rs![Champ1]) Then
rs.Edit
rs![Champ1] = w_codsir
rs.Update
End If
rs.MoveNext
Loop
End Sub
En te remerciant encore pour m'avoir mis sur la voie
à bientot, salut
Vous n’avez pas trouvé la réponse que vous recherchez ?