codebleu
Messages postés30Date d'inscriptionmardi 30 mai 2006StatutMembreDernière intervention 6 mai 2009
-
18 mai 2007 à 11:31
codebleu
Messages postés30Date d'inscriptionmardi 30 mai 2006StatutMembreDernière intervention 6 mai 2009
-
27 mai 2007 à 12:19
Bonjour,
J'ai saisi des données dans une table de données SQL Server et en voulant aller plus vite j'ai recopié certains enregistrements.
Malheureusement, je ne peux plus modifier les nouveaux j'ai le message suivant : "les valeurs de la mise à jour ou supprimée ne rendent pas la ligne unique ou modifient plusieurs lignes (2 lignes).".
Comment puis-je procéder pour modifier ces enregistrements qui sont donc en doublon dans cette table ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 18 mai 2007 à 13:20
Bonjour,
Si t' as pas de problème pour accèder à ta table,
Tu les supprimes carrément.
Tu fais un code qui parcoure ta table et compare le
courant avec le précédent,Si c' est le même tu supprimes.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 mai 2007 à 00:00
Salut,
mais moi non plus cher ami, moi non plus.
Mais je tente ma chance quand même :-)
>Connection
Set cn = New ADODB.Connection
cn.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DataWar.mdb;Persist Security Info=False"
cn.Open
Set rs = new Recordset
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open(cn, "select * from TaTable order by ChampId"
Tu déclares deux variable Prec et Courant du type de ton identifiant
With rs
.MoveFirst
Prec=![Id]
.MoveNext
Do While Not .Eof
Courant=![Id]
If Prec=Courant 'donc en double
.Delete
If Not .Eof Then .MoveNext
Else
Prec=Courant
.MoveNext
End If
Loop
End With
<hr />
® l l i n g , l' agité du bocal :
Etre une heure, une heure seulement...Rien qu' une heure;
Vert, vert, vert et beau à la fooooooooooooooooooooooooois.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 27 mai 2007 à 00:12
Bonsoir,
> sûr que sans les références que tu cites il aurait signalé l' erreur
au niveau du Set cn = New ADODB.Connection
> sûr aussi que rs.Open(cn, "select * from TaTable order by ChampId"
n' est pas une forme mais une "méforme"
(que personne ne connait d' ailleur et je ne souhaite à personne de la connaitre)
je m' en excuse.
c' est rs.Open "select * from TaTable order by ChampId", cn
comme tu l' as souligné. Merci Nocko.
A+
<hr />
® l l i n g , l' agité du bocal :
Etre une heure, une heure seulement..Rien qu' une heure,
Vert, vert, vert et beau à la foooooooooooooooooooooooois.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 27 mai 2007 à 00:14
désolé pour Nocko et Merci Nicko :-)
<hr />® l l i n g , l' agité du bocal :
Etre une heure, une heure seulement..Rien qu' une heure,
Vert, vert, vert et beau à la foooooooooooooooooooooooois.
codebleu
Messages postés30Date d'inscriptionmardi 30 mai 2006StatutMembreDernière intervention 6 mai 2009 27 mai 2007 à 12:19
Messieurs,
Pour être le plus clair possible je travaille avec SQL Server et Visual Basic Express, et l'expression "Set rst = New ADODB.Recordset" n'est pas reconnue le message retourné est "expression 'ADODB.Recordset' non définie".
Ne faut-il pas importer autr chose que "Imports System.Data.SqlClient" que j'ai déclaré en entête...?