Ajout d'enregistrement dans une table BDD ADO

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 - 3 nov. 2004 à 02:54
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 - 3 nov. 2004 à 16:36
Slt je planche un peu l'accés au Bdd et c'est un domaine ou je suis assez nul, mm trés mauvais (novice... :( )

J'utilise ce code pour ouvri ma BDD, elle ne comporte que 2 champs c'est pour testé!!!

'Déclaration de la variable de connexion
Dim cnx As ADODB.Connection
Dim rst As ADODB.Recordset

Private Sub Command1_Click()
Set cnx = New ADODB.Connection
Set rst = New ADODB.Recordset

'Définition du pilote de connexion
cnx.Provider = "Microsoft.Jet.Oledb.3.51"

'Définition de la chaîne de connexion
cnx.ConnectionString = App.Path & "\bdd.mdb"
'Ouverture de la base de données
cnx.Open
End Sub

Je voudrais ajouter un enregistrement dans la table Client dans les champs nom et prenom????

Dans un Deuxieme temp je cherche aussi a trié les données car la elle arrive dans leur ordre d'enregistrement lorsque j'utilise ce code :

rst.Open "SELECT nom, prénom FROM Client", cnx
While Not (rst.EOF)
MsgBox rst(0) & " " & rst(1)
rst.MoveNext
Wend

Comment faire ??? une requéte ou ......?

PS : désolé, mais je répéte que mon Niveau est assez Nul en BDD

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 nov. 2004 à 07:23
Pour rajoutter des champs, il te faut passer par un recordset, et utiliser la propriétés Value, puis un appel à AddNew pour mettre à jour ta base.

Le plus simple, c'est que tu aille voir mon tutoriel sur ProgOtoP qui porte sur DAO, mais le principe reste le même pour ADO, à part qu'il est un tout petit peu plus compliqué pour avoir un recordset.
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
klexus Messages postés 11 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 22 janvier 2005
3 nov. 2004 à 14:38
Slt

il te serais facile d'utliser un DAO

ajoute d'abord la référence MS DAO 3.6 si tu utilise access 2000

crée un module utlisation sur ton formulaire 'form1'

'Module de base
Option explicit

public massession as workspace
public base as database
public client as recordset

Sub main()

On Error Resume Next

'ouverture de la procédure principale
'ouverture de la base de données
Set massession = DBEngine.Workspaces(0)
Set base = massession.OpenDatabase(App.Path + "\bdd.mdb")
Debug.Print App.Path
'tu ouvre ta table client
Set Clients= base.OpenRecordset("Client")
'ouverture du form1
form1.Show
End Sub

'Dans le form1
dim Clients as recordset

Function inserer_clients() As Long
dim Clients as recordset

Dim Numclt As Integer



With Clients
.AddNew

![Nomclient] = Trim(txtnomclient)
!Prenom = Trim(txtprenom)
!Departement = Trim(departement.Text)
!Ville = Trim(ville.Text)
![Boitepostale] = Trim(txtboitepostal)
!Telephone = Trim(txttelephone)
!Telecopie = Trim(txttelecopie)
!Portable = Trim(txtportable)
![Adresse physique] = Trim(txtadresse)
!Fonction = Trim(MAJfonction.Text)
![Note] = Trim(txtremarques)
.Update
End With

End Function

Private Sub cmdvalider_Click()
on error goto err 'gestion des erreurs en cours
call inserer_clients
err:
Select Case err.Number
Case 0
MsgBox "enregistrement effectué avec succès", vbInformation
Case Else
MsgBox err.Number & " : " & err.Description, vbInformation, "Erreur d'enrégistrement"
End Select
End Sub

'test ce code ça doit marcher sinon envoye moi un mot à cette adresse : cfiossi@yahoo.fr
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
3 nov. 2004 à 16:18
G trouver une solution avec :

cnx.Execute "INSERT INTO Client (nom , prénom ) VALUES ( ' " & Text1 & " ' , '" & Text2 & "' )"

Maintenant je cherche comment afficher les données de la table avec un trie, car la ce code :

rst.Open "SELECT nom, prénom FROM Client", cnx
While Not (rst.EOF)
MsgBox rst(0) & " " & rst(1)
rst.MoveNext
Wend

me renvoie tous par ordre d'enregistrement...

Comment faire pour le trie au niveau de la base par ordre alphabétique...
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
3 nov. 2004 à 16:36
et je merdouille aussi sur le code de navigation "<" et ">" : enregistrement suivant ou precedent le tous est afficher dans text1 et Text2..

Enfin si qq passe par la et peu m'eclairer par un petit bout de code???
0
Rejoignez-nous