[Catégorie modifiée .Net --> VBA] Récupérer champ de formulaire outlook : VBS

Signaler
Messages postés
11
Date d'inscription
jeudi 5 août 2010
Statut
Membre
Dernière intervention
27 juin 2012
-
Messages postés
11
Date d'inscription
jeudi 5 août 2010
Statut
Membre
Dernière intervention
27 juin 2012
-
Bonjour à tous,

voila j'ai créé un formulaire de demande de tache avec Outlook 2007.
J'ai réussi à me connecter à ma BDD seulement j'aimerai l'alimenter avec les données du formulaire et je n'y arrive pas.

Voici mon code.


Sub commandbutton1_click()


' Creation du body pour l envoi du mail
Dim cnx
Dim dt


'récupération des paramètres
set cnx = CreateObject ("ADODB.Connection")

cnx.Properties("Data Source") = "***"	'nom du serveur SQL
cnx.Properties("Initial Catalog") = "****"  'nom de la base de données

cnx.Properties("User Id") = "****"
cnx.Properties("Password") =  "***"
cnx.Open 

SQL= "INSERT INTO OUTLOOK VALUES ('" & nomF & "','" & description & "' , '" & DateF & "', '" & Choix & "' )"


set dt = cnx.execute (SQL)


cnx.Close
Set cnx = Nothing

End Sub



Dans ma requête j'ai par exemple VALUES nomF - dateF, qui correspondent à l'ID du champ du formulaire.
Merci à ceux qui savent de m'indiquer la synthxe à écrire à la place de nomF, dateF...

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Et quel est ton problème ?
As-tu une erreur ? laquelle ? sur quelle ligne ?

Ta table s'appelle réellement OUTLOOK ?
De combien de champs se compose t-elle ?
Apparemment, 4 puisque tu tentes de lui insérer 4 champs.
De quels types sont déclarés les champs dans ta table ? (texte, numérique, date ?)

Rappelle de base SQL (qu'on répète 10 fois par semaine) :
Si le champ est déclaré dans la table de type :
- Texte : Encadrer les valeurs par des apostrophes '
- Date : Encadrer les valeurs par des dieses #
- Numérique : pas d'encadrement
De plus, si le nom d'une table ou d'un champ comporte des caractères spéciaux (accents, espaces ...), il faut encadrer le nom de ces table ou champ par des crochets droits [ et ]

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
11
Date d'inscription
jeudi 5 août 2010
Statut
Membre
Dernière intervention
27 juin 2012

Merci pour les infos,
En réalité ce qui me manquait c'est juste de connaître la syntaxe de récupération des champs du formulaire.

J'ai résolu mon problème, l'insertion dans la base fonctionne.
Voici mon code :

Sub commandbutton1_click()


' Creation du body pour l envoi du mail
Dim cnx
Dim dt
Dim NomF, Descr, maDate, Choix


'récupération des paramètres
set cnx = CreateObject ("ADODB.Connection")

cnx.Properties("Data Source") = "****"	'nom du serveur SQL
cnx.Properties("Initial Catalog") = "****"  'nom de la base de données

cnx.Properties("User Id") = "****"
cnx.Properties("Password") =  "****"
cnx.Open 

' récupération des valeurs du formulaire
NomF = Item.GetInspector.ModifiedFormPages("Form").Controls("Nom").value
Descr = Item.GetInspector.ModifiedFormPages("Form").Controls("Description").value
maDate = Item.GetInspector.ModifiedFormPages("Form").Controls("TextBox1").value
Choix = Item.GetInspector.ModifiedFormPages("Form").Controls("Choix").value

If Choix = "Vrai" then
Choix = 1
Elseif Choix = "Faux" then
Choix = 2
Else Choix = 0
End if

'requête
SQL= "INSERT INTO OUTLOOK VALUES ('" & NomF & "', '" & Descr & "', '" & maDate & "', '" & Choix & "' )"
set dt = cnx.execute (SQL)


'fermeture connexion
cnx.Close
Set cnx = Nothing

End Sub