écrire dans une base de donnée acces avec visual basic

boss016 Messages postés 1 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 5 novembre 2005 - 5 nov. 2005 à 12:37
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 6 nov. 2005 à 16:10
bonjour à tous,


je crée actuellement un programme en VB qui permet de gerer des notes,
pouvoir les consulter, à partir d'une base de donnée access,
le programme doit pouvoir calculer des moyenes par matieres, moyenes
generales ou autre manip (qui seront réalisée surement à partir de requetes
SQL).


je doit faire ce programme dans le cadre du cour de programmation
(je fait un DUT Genie Electrique et Informatique Industrielle) et je suis
bloqué sur un point :


j'ai plusieurs textbox dans lequel l'utilisateur rentre des informations
sur le devoir (coefficient, description, date,note...) et j'aimerai que
apres avoir appuié sur le bouton de commande correspondant remplir
ma base de donnée avec ces informations (je pensait utiliser data1.recordset.addnew)
et sans avoir à relier mes textbox à un champ de la base de donnée.


pour resumer le probleme, par exemple j'ai une chaine de caractère que j'apelle
strexemple ; j'aimerai écrire cette chaine dans le tableau "tableau1" à la
colonne "exemple" de ma base de donnée. quelle serai le code à écrire dans un bouton de commande par exemple pour que cela se réalise.


merci d'avance pour votre aide

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 nov. 2005 à 14:59
Salut

Moi je n'utilise jamais les addnew
Je preferes le faire en sql directement

Il faut mettre unereference a ado 2.X (X a determiné selon ton pc)
En general >= 6 (le 8 est le plus recnt)

exemple pour le insert, update et delete

strSQL = "insert into ville (ville) values ('" & villename & "')"

cmdADO.CommandText = strSQL
cmdADO.Execute

avec dans un module

Public rsado As New ADODB.Recordset
Public connADO As New ADODB.Connection
Public cmdADO As New ADODB.Command
Public strSQL As String

Public Sub Main()

connADO.Provider = "Microsoft.JET.OLEDB.4.0"
connADO.ConnectionString = App.Path + "\BDD.mdb"
Set rsado = New ADODB.Recordset
rsado.LockType = adLockOptimistic
connADO.Open
Set cmdADO.ActiveConnection = connADO
cmdADO.CommandType = adCmdText

MainForm.Show
End Sub

et pour le select un exemple de parcours

Set rsado = New ADODB.Recordset

rsado.Open "SELECT * from ville order by ville", connADO

Do Until rsado.EOF
..... = rsado!id_ville
.... = rsado!Ville

rsado.MoveNext
Loop

rsado.Close
Set rsado = Nothing
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
6 nov. 2005 à 16:10
Personnellement je n'utilise plus DAO mais ADO qui est plus d'actualité, vu que Microsoft à enterré DAO, mais je pense que le principe reste le même, avant de faire un addnew sur ton contrôle Data1, tu dois le remplir avec quelque chose ou plus exactement le contenu de la table dans laquelle tu veux rajouter un enregistrement


voir le code ci-dessous:


Dans cet exemple je remplis le recordset de mon control Data5 avec le contenu de la table “Equipement”, ensuite j’ajoute un nouveau record et je donne au champ "Marque" la valeur contenue dans mon texteboxe "TxtMarque" ensuite je fais un update pour que le nouveau record soit enregistré dans ma table "Equipement".


Dim Sqlstr


Sqlstr = "Select * From Equipement "


With Data5


.DatabaseName = Current_DB


.RecordSource = Sqlstr


.Refresh


End With




With Data5


.Recordset.AddNew


.Recordset.Fields![Marque].Value = TxtMarque.text


.Recordset.Update


End with

Voilà essaye ça devrais marcher

Pascal Laurençon
0
Rejoignez-nous