Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Operation sur une table avec VB [ Archives Visual Basic / Formulaire ] (H.laalouj)

samedi 18 mars 2000 à 08:26:42 | Operation sur une table avec VB

H.laalouj

Question 1:
J'aimerais avoir un exemple d'acces à une table d'une base de données avec les differentes operations de manipulation de données: Ajout, Recherche, Modification, Suppression.
Question 2:
Est ce qu'il ya possibilité de saisir une valeur dans un champ sur deux tables par exemple: Id sur table1 et Id sur table2 de la même base de données.
Merci Infiniment.

samedi 18 mars 2000 à 14:41:34 | Re : Operation sur une table avec VB

Amonbofis

Réponse longue, mais je crois que tout y est.


Question 1:
[Tu sais sûrement déjà pour l'étape A, mais pour tout les autres...]
A) OUVERTURE:
Dim OutSQLQry As String
Dim MyDB As Database
Dim MyRSet As Recordset
Dim DBPath As String

DBPath = [CommonDialog1.FileName ou autre source]
OutSQLQry = "SELECT ChampsX FROM TableX;"
Set MyDB = DBEngine.OpenDatabase(DBPath, True, True)
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)


B) AJOUT:
With MyRSet
.AddNew
.Fields("ChampsX") = ValeurX
.Fields("ChampsY") = ChaineY
.Update 'Sans cette ligne, rien d'enregistré
End With


C) 1. RECHERCHE, dans une Table résultat requête dans un Recordset:
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsY = 'Chaine';" ou
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsY = '" & ChaineX & "';" ou
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsZ = Valeur;" ou
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsZ = " & str$(ValeurX) & ";"
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)
'Tout dépend du type de tes champs, pour les chaines, il faut s'assurer de doubler les apostrophes sinon la requête finie au mauvais endroit et ça casse.
'Si aucun résultat, MyRSet.RecordCount = 0

2. RECHERCHE, dans un Recordset:
'Ce qui s'applique à la recherche dans une table pour la requête est vrai ici.
'Toutes les requêtes sont du type logique "WHERE X = Y;"
OutSQLQry = "ChampsX = Valeur"

'Placer le curseur sur la première ligne répondant à la requête
MyRSet.FindFirst(OutSQLQry)
'Toute consultation se fait sur la ligne où le curseur est.
Resultat = MyRSet.Fields("ChampsX")
'Ligne suivante
MyRSet.FindNext(OutSQLQry)
'Si aucun résultat, MyRSet.NoMatch = True

'Un bon bloc à utiliser:
MyRSet.FindFirst OutSQLQry
Do Until MyRSet.NoMatch
VariableX = MyRSet.Fields("ChampsX")
'Ici code à exécuter sur VariableX
MyRSet.FindNext OutSQLQry
Loop


D) MODIFICATION:
OutSQLQry = "SELECT ChampsX FROM TableX;"
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)
OutSQLQry = "ChampsX = Valeur"
MyRSet.FindFirst(OutSQLQry)
MyRSet.Edit
MyRSet.Fields("ChampsX") = ValeurX
MyRSet.Update


E) SUPRESSION:
OutSQLQry = "SELECT ChampsX FROM TableX;"
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)
OutSQLQry = "ChampsX = Valeur"
MyRSet.FindFirst(OutSQLQry)
MyRSet.Delete


Question 2:
'Dans une même requête, je crois que c'est impossible,
'ou du moins je ne sais pas, autrement:
Dim OutSQLQry As String
Dim MyDB As Database
Dim MyRSet As Recordset
Dim MyRSet2 as Recordset
Dim DBPath As String

DBPath = [CommonDialog1.FileName ou autre source]
OutSQLQry = "SELECT ChampsID1 FROM TableX;"
Set MyDB = DBEngine.OpenDatabase(DBPath, True, True)
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)

OutSQLQry = "SELECT ChampsID2 FROM TableY;"
Set MyRSet2 = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)

'Ensuite
Resultat1 = MyRSet.Fields("ChampsID1")
Resultat2 = MyRSet2.Fields("ChampsID2")


'Je te donne un dernier exemple, peut-être en fait que c'est ce que tu veux...
OutSQLQry = "(SELECT ChampX, ChampsY FROM TableX;) UNION ALL (SELECT ChampsX, ChampsY FROM TableY;) ORDER BY ChampsX;"
Set MyRSet = MyDB.OpenRecordset(OutSQLQry, dbOpenSnapshot)


'MyRSet contient l'ensemble résultat comme si tu avais fait la requête sur une seule table.
'UNION ALL force à garder les duplicatas, UNION les résultats unique.


-------------------------------
Réponse au message :
-------------------------------

Question 1:
J'aimerais avoir un exemple d'acces à une table d'une base de données avec les differentes operations de manipulation de données: Ajout, Recherche, Modification, Suppression.
Question 2:
Est ce qu'il ya possibilité de saisir une valeur dans un champ sur deux tables par exemple: Id sur table1 et Id sur table2 de la même base de données.
Merci Infiniment.
-------------------------------

lundi 20 mars 2000 à 05:54:33 | Re : Operation sur une table avec VB

:OB

Salut !
Je profite de ce message pour poser une question subsidiaire.
Dans le cas de l'utilisation d'un datacontrol, la méthode AddNew plante chez moi en me déclarant que ma table est ouverte en lecture seule.
Or, je n'utilise pas la méthode OpenDatabase (forcément, pas besoin avec un datacontrol), la propriété ReadOnly est à false, les fichier de BD est accessible et au bon endroit, et j'ai les droits pour y accéder.
Une piste de recherche ?
Merci d'avance.
Olivier.



-------------------------------
Réponse au message :
-------------------------------

Réponse longue, mais je crois que tout y est.


Question 1:
[Tu sais sûrement déjà pour l'étape A, mais pour tout les autres...]
A) OUVERTURE:
Dim OutSQLQry As String
Dim MyDB As Database
Dim MyRSet As Recordset
Dim DBPath As String

DBPath = [CommonDialog1.FileName ou autre source]
OutSQLQry = "SELECT ChampsX FROM TableX;"
Set MyDB = DBEngine.OpenDatabase(DBPath, True, True)
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)


B) AJOUT:
With MyRSet
.AddNew
.Fields("ChampsX") = ValeurX
.Fields("ChampsY") = ChaineY
.Update 'Sans cette ligne, rien d'enregistré
End With


C) 1. RECHERCHE, dans une Table résultat requête dans un Recordset:
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsY = 'Chaine';" ou
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsY = '" & ChaineX & "';" ou
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsZ = Valeur;" ou
OutSQLQry = "SELECT ChampsX FROM TableX WHERE ChampsZ = " & str$(ValeurX) & ";"
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)
'Tout dépend du type de tes champs, pour les chaines, il faut s'assurer de doubler les apostrophes sinon la requête finie au mauvais endroit et ça casse.
'Si aucun résultat, MyRSet.RecordCount = 0

2. RECHERCHE, dans un Recordset:
'Ce qui s'applique à la recherche dans une table pour la requête est vrai ici.
'Toutes les requêtes sont du type logique "WHERE X = Y;"
OutSQLQry = "ChampsX = Valeur"

'Placer le curseur sur la première ligne répondant à la requête
MyRSet.FindFirst(OutSQLQry)
'Toute consultation se fait sur la ligne où le curseur est.
Resultat = MyRSet.Fields("ChampsX")
'Ligne suivante
MyRSet.FindNext(OutSQLQry)
'Si aucun résultat, MyRSet.NoMatch = True

'Un bon bloc à utiliser:
MyRSet.FindFirst OutSQLQry
Do Until MyRSet.NoMatch
VariableX = MyRSet.Fields("ChampsX")
'Ici code à exécuter sur VariableX
MyRSet.FindNext OutSQLQry
Loop


D) MODIFICATION:
OutSQLQry = "SELECT ChampsX FROM TableX;"
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)
OutSQLQry = "ChampsX = Valeur"
MyRSet.FindFirst(OutSQLQry)
MyRSet.Edit
MyRSet.Fields("ChampsX") = ValeurX
MyRSet.Update


E) SUPRESSION:
OutSQLQry = "SELECT ChampsX FROM TableX;"
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)
OutSQLQry = "ChampsX = Valeur"
MyRSet.FindFirst(OutSQLQry)
MyRSet.Delete


Question 2:
'Dans une même requête, je crois que c'est impossible,
'ou du moins je ne sais pas, autrement:
Dim OutSQLQry As String
Dim MyDB As Database
Dim MyRSet As Recordset
Dim MyRSet2 as Recordset
Dim DBPath As String

DBPath = [CommonDialog1.FileName ou autre source]
OutSQLQry = "SELECT ChampsID1 FROM TableX;"
Set MyDB = DBEngine.OpenDatabase(DBPath, True, True)
Set MyRSet = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)

OutSQLQry = "SELECT ChampsID2 FROM TableY;"
Set MyRSet2 = MyBD.OpenRecordset(OutSQLQry, dbOpenSnapshot)

'Ensuite
Resultat1 = MyRSet.Fields("ChampsID1")
Resultat2 = MyRSet2.Fields("ChampsID2")


'Je te donne un dernier exemple, peut-être en fait que c'est ce que tu veux...
OutSQLQry = "(SELECT ChampX, ChampsY FROM TableX;) UNION ALL (SELECT ChampsX, ChampsY FROM TableY;) ORDER BY ChampsX;"
Set MyRSet = MyDB.OpenRecordset(OutSQLQry, dbOpenSnapshot)


'MyRSet contient l'ensemble résultat comme si tu avais fait la requête sur une seule table.
'UNION ALL force à garder les duplicatas, UNION les résultats unique.


-------------------------------
Réponse au message :
-------------------------------

Question 1:
J'aimerais avoir un exemple d'acces à une table d'une base de données avec les differentes operations de manipulation de données: Ajout, Recherche, Modification, Suppression.
Question 2:
Est ce qu'il ya possibilité de saisir une valeur dans un champ sur deux tables par exemple: Id sur table1 et Id sur table2 de la même base de données.
Merci Infiniment.
-------------------------------
-------------------------------



Cette discussion est classé dans : vb, table, données, question, operation


Répondre à ce message

Sujets en rapport avec ce message

VB/Excel juste une petite question [ par ndsaerith ] Bonjour tout le mondevoila j'ai une petite question sur l'importation de dojnées sur excel via VB.J'ai réussi à oiuvriur excel, et à mettre des donnée Graphique vb : URGENT [ par liliane0 ] bonjour,j'en profites tt d'abord pour remercier tous qui m'on donné un coup de main pour ma dérnière question concernant les images ds le menu.ma nouv Durée de chargement dans un listview [ par sony20 ] Bonjour,J'ai besoin d'un avis SVP :J'ai une appli VB qui cherche dans SQL (à l'aide de ADODB) les données d'une table selon des paramètres. Les donnée VB et base de données [ par stefdsig ] Bonjour,je dois développer une Application VB pour gérer une base de données Access. Je dois y accéder en saisie, extraction et consultation. J'ai déc Comment insérer des données dans une table [ par erce78 ] Bonsoir,Je n'arrive pas à trouver la réponse à ma question aussi je me permet de vous soliciter.Je suis un débutant sur vb et j'apprend en essayant de Plusieur question au sujet des Base de données. [ par kitcarflo ] Voila, je cherche depuis quelques jours a créer une application utilisant des bases de données pour l'entreprise ou je suis.Ayant rechercher un peu pa accès aux bases de données en VB.NET [ par hourrane ] Bonjour,J'arrive bien à manipuler les bases de données access en vb.net par code mais j'ai un problème lorsque je veux établir une connexion à l'aide Tableau de bytes en VB.NET [ par Saros ] C'est une question sur VB.NET, que je suis en train d'apprendre...Donc voilà : l'objet 'System.IO.FileStream' permet de manipuler des fichiers, c'est VB vs oracle ..besoin de renseignements [ par LoVeyou ] Bonjour,j'aurai besoin de quelques renseignements...Il me faut créer une application dans VB6 en lien avec Oracle..Je me suis donc connecté à Oracle(n Probléme pour enregistrer auto les données de vb a access [ par jimluis ] Bonjour, Ce que je voudrais, c'est faire que les données de mon interface,dans textbox, combobox, etc... soit tranférer automatiquement quand ces comp


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.