Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000.
J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double
dans une table qui n'a pas de clé primaire et pour le moment je ne doit pas
les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de
données et retient les numéros de lignes à supprimer dans ma table. La partie
suivante de mon programme illustrée ci-dessous doit supprimer ces lignes en
double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable et
le DataRowCollection. Ce programme supprime bien les ligne dans le
DataRowCollection mais je ne constate aucune répercution dans la table de la
base de données; les lignes en double ne sont pas supprimées!??? Voici le
programme :
'Déclaration
Dim objOleDbCommand As New OleDbCommand()
Dim objOleDbDataAdapter As OleDbDataAdapter
Dim objDataRowCollection As DataRowCollection
Dim objDataSet As New DataSet()
Dim objDataTable As New DataTable()
'Connexion à la table...
nomTable="matable"
objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER
meschamps", ObjOleDbConnection)
objOleDbDataAdapter.Fill(objDataSet, nomTable)
objDataTable = objDataSet.Tables(nomTable)
objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2
objDataRowCollection(2).Delete()
objDataRowCollection(5).Delete()
'Accèpte les changements
objDataTable.AcceptChanges()
objDataSet.AcceptChanges()
objOleDbDataAdapter.Update(objDataSet, nomTable)
Ce ne sais pas si ça peut vous aider mais voici ma procedure pour supprimer un enregistement dans une base access
Déclarer les objets paramètres : Dim Param_1 As New OleDb.OleDbParameter("Nom_Prenom_Adm", OleDb.OleDbType.LongVarChar) Dim Param_2 As New OleDb.OleDbParameter("Adresse", OleDb.OleDbType.LongVarChar)
*Création du texte de la requête avec les paramètres "?" et de l'objet commande SQL avec affectation de la requête txt_sql1 = "INSERT INTO T_Administres_Entreprises " & _ "(Nom_Prenom_Adm,Adresse, Telephone) " & _ "VALUES (?,?,?)"
Dim sql_Cde As New OleDb.OleDbCommand() sql_Cde.CommandText = txt_sql1
*Affectation des valeurs aux objets paramètres Param_1.Value = TB_Nom.Text Param_2.Value = TB_Adr.Text Param_3.Value = TB_Tel.Text
*Ajout des paramètres à la commande SQL (attention l'ordre suit celui du texte de la requette) sql_Cde.Parameters.Add(Param_1) sql_Cde.Parameters.Add(Param_2) sql_Cde.Parameters.Add(Param_3)
*Vider la liste des paramètres pour en affecter d'autre sql_Cde.Parameters.Clear()
"DM" a écrit :
Merci pour votre aide :
Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000. J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double dans une table qui n'a pas de clé primaire et pour le moment je ne doit pas les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de données et retient les numéros de lignes à supprimer dans ma table. La partie suivante de mon programme illustrée ci-dessous doit supprimer ces lignes en double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable et le DataRowCollection. Ce programme supprime bien les ligne dans le DataRowCollection mais je ne constate aucune répercution dans la table de la base de données; les lignes en double ne sont pas supprimées!??? Voici le programme :
'Déclaration Dim objOleDbCommand As New OleDbCommand() Dim objOleDbDataAdapter As OleDbDataAdapter Dim objDataRowCollection As DataRowCollection Dim objDataSet As New DataSet() Dim objDataTable As New DataTable()
'Connexion à la table... nomTable="matable" objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER meschamps", ObjOleDbConnection) objOleDbDataAdapter.Fill(objDataSet, nomTable) objDataTable = objDataSet.Tables(nomTable) objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2 objDataRowCollection(2).Delete() objDataRowCollection(5).Delete()
'Accèpte les changements objDataTable.AcceptChanges() objDataSet.AcceptChanges() objOleDbDataAdapter.Update(objDataSet, nomTable)
Ce ne sais pas si ça peut vous aider mais voici ma procedure pour supprimer
un enregistement dans une base access
Déclarer les objets paramètres :
Dim Param_1 As New OleDb.OleDbParameter("Nom_Prenom_Adm",
OleDb.OleDbType.LongVarChar)
Dim Param_2 As New OleDb.OleDbParameter("Adresse",
OleDb.OleDbType.LongVarChar)
*Création du texte de la requête avec les paramètres "?" et de l'objet
commande SQL avec affectation de la requête
txt_sql1 = "INSERT INTO T_Administres_Entreprises " & _
"(Nom_Prenom_Adm,Adresse, Telephone) " & _
"VALUES (?,?,?)"
Dim sql_Cde As New OleDb.OleDbCommand()
sql_Cde.CommandText = txt_sql1
*Affectation des valeurs aux objets paramètres
Param_1.Value = TB_Nom.Text
Param_2.Value = TB_Adr.Text
Param_3.Value = TB_Tel.Text
*Ajout des paramètres à la commande SQL (attention l'ordre suit celui du
texte de la requette)
sql_Cde.Parameters.Add(Param_1)
sql_Cde.Parameters.Add(Param_2)
sql_Cde.Parameters.Add(Param_3)
*Vider la liste des paramètres pour en affecter d'autre
sql_Cde.Parameters.Clear()
"DM" a écrit :
Merci pour votre aide :
Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000.
J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double
dans une table qui n'a pas de clé primaire et pour le moment je ne doit pas
les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de
données et retient les numéros de lignes à supprimer dans ma table. La partie
suivante de mon programme illustrée ci-dessous doit supprimer ces lignes en
double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable et
le DataRowCollection. Ce programme supprime bien les ligne dans le
DataRowCollection mais je ne constate aucune répercution dans la table de la
base de données; les lignes en double ne sont pas supprimées!??? Voici le
programme :
'Déclaration
Dim objOleDbCommand As New OleDbCommand()
Dim objOleDbDataAdapter As OleDbDataAdapter
Dim objDataRowCollection As DataRowCollection
Dim objDataSet As New DataSet()
Dim objDataTable As New DataTable()
'Connexion à la table...
nomTable="matable"
objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER
meschamps", ObjOleDbConnection)
objOleDbDataAdapter.Fill(objDataSet, nomTable)
objDataTable = objDataSet.Tables(nomTable)
objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2
objDataRowCollection(2).Delete()
objDataRowCollection(5).Delete()
'Accèpte les changements
objDataTable.AcceptChanges()
objDataSet.AcceptChanges()
objOleDbDataAdapter.Update(objDataSet, nomTable)
Ce ne sais pas si ça peut vous aider mais voici ma procedure pour supprimer un enregistement dans une base access
Déclarer les objets paramètres : Dim Param_1 As New OleDb.OleDbParameter("Nom_Prenom_Adm", OleDb.OleDbType.LongVarChar) Dim Param_2 As New OleDb.OleDbParameter("Adresse", OleDb.OleDbType.LongVarChar)
*Création du texte de la requête avec les paramètres "?" et de l'objet commande SQL avec affectation de la requête txt_sql1 = "INSERT INTO T_Administres_Entreprises " & _ "(Nom_Prenom_Adm,Adresse, Telephone) " & _ "VALUES (?,?,?)"
Dim sql_Cde As New OleDb.OleDbCommand() sql_Cde.CommandText = txt_sql1
*Affectation des valeurs aux objets paramètres Param_1.Value = TB_Nom.Text Param_2.Value = TB_Adr.Text Param_3.Value = TB_Tel.Text
*Ajout des paramètres à la commande SQL (attention l'ordre suit celui du texte de la requette) sql_Cde.Parameters.Add(Param_1) sql_Cde.Parameters.Add(Param_2) sql_Cde.Parameters.Add(Param_3)
*Vider la liste des paramètres pour en affecter d'autre sql_Cde.Parameters.Clear()
"DM" a écrit :
Merci pour votre aide :
Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000. J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double dans une table qui n'a pas de clé primaire et pour le moment je ne doit pas les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de données et retient les numéros de lignes à supprimer dans ma table. La partie suivante de mon programme illustrée ci-dessous doit supprimer ces lignes en double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable et le DataRowCollection. Ce programme supprime bien les ligne dans le DataRowCollection mais je ne constate aucune répercution dans la table de la base de données; les lignes en double ne sont pas supprimées!??? Voici le programme :
'Déclaration Dim objOleDbCommand As New OleDbCommand() Dim objOleDbDataAdapter As OleDbDataAdapter Dim objDataRowCollection As DataRowCollection Dim objDataSet As New DataSet() Dim objDataTable As New DataTable()
'Connexion à la table... nomTable="matable" objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER meschamps", ObjOleDbConnection) objOleDbDataAdapter.Fill(objDataSet, nomTable) objDataTable = objDataSet.Tables(nomTable) objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2 objDataRowCollection(2).Delete() objDataRowCollection(5).Delete()
'Accèpte les changements objDataTable.AcceptChanges() objDataSet.AcceptChanges() objOleDbDataAdapter.Update(objDataSet, nomTable)
Sylvain Lafontaine
À ma connaissance, le DataAdapter ne fera pas de modification sur la source de donnée s'il n'y a pas eu de clef primaire de défini. Cependant, vous n'êtes pas obligé d'utiliser une clef primaire réellement existante dans la source de donnée; il vous suffit de définir une ou plusieurs colonnes de votre DataTable comme étant la clef primaire à utiliser.
Je ne l'ai jamais fais moi-même mais une recherche dans l'aide en ligne sur la propriété .PrimaryKey des DataTable devrait vous fournir tous les renseignements requis.
S. L.
"DM" wrote in message news:
Merci pour votre aide :
Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000. J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double dans une table qui n'a pas de clé primaire et pour le moment je ne doit pas les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de données et retient les numéros de lignes à supprimer dans ma table. La partie suivante de mon programme illustrée ci-dessous doit supprimer ces lignes en double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable et le DataRowCollection. Ce programme supprime bien les ligne dans le DataRowCollection mais je ne constate aucune répercution dans la table de la base de données; les lignes en double ne sont pas supprimées!??? Voici le programme :
'Déclaration Dim objOleDbCommand As New OleDbCommand() Dim objOleDbDataAdapter As OleDbDataAdapter Dim objDataRowCollection As DataRowCollection Dim objDataSet As New DataSet() Dim objDataTable As New DataTable()
'Connexion à la table... nomTable="matable" objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER meschamps", ObjOleDbConnection) objOleDbDataAdapter.Fill(objDataSet, nomTable) objDataTable = objDataSet.Tables(nomTable) objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2 objDataRowCollection(2).Delete() objDataRowCollection(5).Delete()
'Accèpte les changements objDataTable.AcceptChanges() objDataSet.AcceptChanges() objOleDbDataAdapter.Update(objDataSet, nomTable)
À ma connaissance, le DataAdapter ne fera pas de modification sur la source
de donnée s'il n'y a pas eu de clef primaire de défini. Cependant, vous
n'êtes pas obligé d'utiliser une clef primaire réellement existante dans la
source de donnée; il vous suffit de définir une ou plusieurs colonnes de
votre DataTable comme étant la clef primaire à utiliser.
Je ne l'ai jamais fais moi-même mais une recherche dans l'aide en ligne sur
la propriété .PrimaryKey des DataTable devrait vous fournir tous les
renseignements requis.
S. L.
"DM" <DM@discussions.microsoft.com> wrote in message
news:BE7E60F2-BD50-434F-A381-1E6C838E099E@microsoft.com...
Merci pour votre aide :
Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000.
J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double
dans une table qui n'a pas de clé primaire et pour le moment je ne doit
pas
les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de
données et retient les numéros de lignes à supprimer dans ma table. La
partie
suivante de mon programme illustrée ci-dessous doit supprimer ces lignes
en
double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable
et
le DataRowCollection. Ce programme supprime bien les ligne dans le
DataRowCollection mais je ne constate aucune répercution dans la table de
la
base de données; les lignes en double ne sont pas supprimées!??? Voici le
programme :
'Déclaration
Dim objOleDbCommand As New OleDbCommand()
Dim objOleDbDataAdapter As OleDbDataAdapter
Dim objDataRowCollection As DataRowCollection
Dim objDataSet As New DataSet()
Dim objDataTable As New DataTable()
'Connexion à la table...
nomTable="matable"
objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER
meschamps", ObjOleDbConnection)
objOleDbDataAdapter.Fill(objDataSet, nomTable)
objDataTable = objDataSet.Tables(nomTable)
objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2
objDataRowCollection(2).Delete()
objDataRowCollection(5).Delete()
'Accèpte les changements
objDataTable.AcceptChanges()
objDataSet.AcceptChanges()
objOleDbDataAdapter.Update(objDataSet, nomTable)
À ma connaissance, le DataAdapter ne fera pas de modification sur la source de donnée s'il n'y a pas eu de clef primaire de défini. Cependant, vous n'êtes pas obligé d'utiliser une clef primaire réellement existante dans la source de donnée; il vous suffit de définir une ou plusieurs colonnes de votre DataTable comme étant la clef primaire à utiliser.
Je ne l'ai jamais fais moi-même mais une recherche dans l'aide en ligne sur la propriété .PrimaryKey des DataTable devrait vous fournir tous les renseignements requis.
S. L.
"DM" wrote in message news:
Merci pour votre aide :
Mon programme doit se connecter à une base ACCESS 97 ou SQL Server 2000. J'ai donc choisi d'utiliser OleDb.
Puis mon programme doit supprimer des lignes (enregistrements) en double dans une table qui n'a pas de clé primaire et pour le moment je ne doit pas les créer!
Une partie de mon programme (non présenté ici) se connecte à la base de données et retient les numéros de lignes à supprimer dans ma table. La partie suivante de mon programme illustrée ci-dessous doit supprimer ces lignes en double. J'utilise pour ce faire le DataAdapter, le DataSet, le DataTable et le DataRowCollection. Ce programme supprime bien les ligne dans le DataRowCollection mais je ne constate aucune répercution dans la table de la base de données; les lignes en double ne sont pas supprimées!??? Voici le programme :
'Déclaration Dim objOleDbCommand As New OleDbCommand() Dim objOleDbDataAdapter As OleDbDataAdapter Dim objDataRowCollection As DataRowCollection Dim objDataSet As New DataSet() Dim objDataTable As New DataTable()
'Connexion à la table... nomTable="matable" objOleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM matable ORDER meschamps", ObjOleDbConnection) objOleDbDataAdapter.Fill(objDataSet, nomTable) objDataTable = objDataSet.Tables(nomTable) objDataRowCollection = objDataTable.Rows
'Supprime la ligne 2 objDataRowCollection(2).Delete() objDataRowCollection(5).Delete()
'Accèpte les changements objDataTable.AcceptChanges() objDataSet.AcceptChanges() objOleDbDataAdapter.Update(objDataSet, nomTable)