Insérer des données dans des champs vides d'une table déjà remplie

Signaler
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
15 février 2010
-
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
15 février 2010
-
Bonjour à tous, j'ai une colle à posée ( enfin c'est une colle pour moi en tout cas )

J'ai une table remplie avec des données diverses, à partir de fichiers excel, seulement 3 colonnes ont été rajoutées pour s'y retrouver dans la table, colonnes qui elles n'existent pas dans le fichier excel.

bon j'ai un code !
Set oRs = CurrentDb.OpenRecordset(nomdetable, dbOpenDynaset)
oRs.Edit
nbligne = 1
Do While nbligne < lignetable

    oRs.Fields("Champ1").Value(nbligne) = info1
    oRs.Fields("Champ2").Value(nbligne) = info2
    oRs.Fields("Champ3").Value(nbligne) = info3
  nbligne = nbligne + 1
Loop

nbligne est à 1 pour ne pas écraser le nom du champ.
lignetable est une variable contenant le nombre max de lignes non vides de la table

lorsque je l'éxécute je remplis uniquement la première ligne de mes 3 champs, le reste, pour la peine reste vide, mais je dois remplir toute les lignes d'ou mon idée de départ de rajouter (nbligne) à chaque fois, sans succès hélas.

une exemple plus concret du résultat actuel de mon code

champ1 | champ2 | champ3 | champ4
 info1     | info2     |   info3   |  info4
             |              |              | info4
             |              |              | info4

j'aimerais que info1, info2, info3 soit présent à chaque fois. à noter qu'étant des références, ces infos ne peuvent être fixe à chaque fois. SI jamais je suis pas clair, ben hésitez pas !

5 réponses

Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
a place de nomtable dans ton openrs

"SELECT * FROM " & nomtable & " WHERE champ1='' OR champ2='' OR champ3=''"

Avant   nbligne = nbligne + 1
oRS.update

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
15 février 2010

Salut zen69 !

Merci pour ta réponse, seulement il doit manquer quelque chose car j'ai l'erreur too few parameters. Expected 2

j'ai repris ton code de la manière suivante :

Set oRs = CurrentDb.OpenRecordset("SELECT champ1,champ2,champ3 FROM " & nomdetable & " WHERE champ1='' OR champ2='' OR champ3=''", dbOpenDynaset)

Une idée ?
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
15 février 2010

J'ai trouvé pour l'erreur, il fallait rajouter des apostrophes comme ceci :

Set oRs = CurrentDb.OpenRecordset("SELECT champ1,champ2,champ3 FROM " & nomdetable & " WHERE 'champ1'='' OR 'champ2'='' OR 'champ3'=''", dbOpenDynaset)

mais maintenant j'ai une erreur "No current Record"
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
15 février 2010

Je ne trouve pas de solution pour le "no current record"




il se produit sur "oRs.Edit"
juste à la suite de la déclaration donc, est ce parce que le code sélectionne des champs vides ? comment y rémédier du coup ?
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
15 février 2010

Si quelqu'un à une autre façon de procéder pour palier au problème de l'insertion qu'il n'hésite pas, je bloque depuis 2 jours la dessus :D