Executer une requete sql sous VB (urgent)

Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005 - 20 sept. 2005 à 10:42
 Yuki59500 - 15 janv. 2008 à 10:51
Bonjour a tous je souhaiterai avoir le code pour executer une requete sql sous VB.

Mon projet consiste à faire une base de données pour reserver un
camion! Les conditions sont que je ne dois en aucun cas ecrire sur ma
table (T_Location), mais creer une requete qui met a jours la table. De
plus si une date est deja prise il faut qu'il y est un message
d'erreur!! merci d'avance

25 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 sept. 2005 à 11:50
salut,
une requête est un résultat partiel ou complet d'une ou plusieurs table.
par définition, elle n'écrit pas dans la table (dans le sens écraser).

tu peux mieux expliquer stp?
tu fais çà sous VBA access?
VB6 // access?
autre? :-$
PCPT
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 11:58
Je fais ca sous VBa access maleuresuement pour moi! Sinon alors j'ai une table nommé T_Location :
champ: _NumeroLocation


_NomUtilisateur


_DateDemande


_DateDebut Reservation


_DateFin Reservation


_LieuDepart


_LieuArrivee
J'ai un formulaire independant nommé F_Saisie ou je renseigne les champs(identique a la table)! Maintenant je veux executer une ou pluqieurs requete pour me permettre de comparer les dates de ma tables avec les dates saisies de facon a ne pa reserver la meme date, et je veux une mise a jours de ma table si la date est valide!!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 sept. 2005 à 12:21
re,
VBA, je ne pourrai pas t'aider.
par contre, sur le principe : tu n'as pas besoin de 2 tables.
tu crées un nouvel enregistrement que tu vas écrire dans ta base principale (et unique).
mais avant, tu vérifies par une requête que la plage de temps (date) ou camion (numéro) etc... soit dispo. si c'est le cas, tu valides la réservation en écrivant alors ta requête. sinon, la tu mets ton message "pas dispo bip bip".
PCPT
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 12:23
Je n'ai qu'une seule table!! Merci mais j'accepte ta reponse mais j'attends du code svp!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 14:16
Encode ca donne koi les requetes??
0
yuri1961 Messages postés 71 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 16 février 2007
20 sept. 2005 à 14:43
Bjr!

Tu veux executer une requete sous Access??? stp!!!

Dim db As Database, TaRequete$

Set db = CurrentDb

TaRequete= "SELECT * FROM TaTable"

db.Execute TaRequete
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 15:14
Voila je tape ton code mais le probleme lors de mon execution c'est que
je me fais jetter: db as database: type non defini par l'utilisateur!!
pourquoi?
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 15:32
Je recapepete le probleme, en gros je veux comparer mes dates saisies a
mes date deja entrées dans ma table sachant qu'il n'y a aucun lien
entre le formulaire de saisie et la table. Ce qui m'impose une
connexion a la base de données et une requete et c'est ca que je
chercher! nom de la bd: Reservation camion

Nom table: cf plus haut

Nom Formulaire:cf plus haut
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
20 sept. 2005 à 16:21
Voilà une manière de faire. En espèrant que celà pourra t'aider

Private Sub Commande12_Click()
On Error GoTo Err_Commande12_Click
Dim StrChaineSQL As String, db As Database, rcd As Recordset, DateResa As Date



DateResa = Me.DateDebutReservation
StrChaineSQL = ""
' Ouverture d'un recordset sur la base de la requête si dessu
Set db = CurrentDb
Set rcd = db.OpenRecordset("SELECT T_Location.NumeroLocation, T_Location.NomUtilisateur " & _
" FROM T_Location WHERE (((T_Location.DateDebutReservation)=#" & DateResa & "#));")
' Si la recherche est infructueuse, informe l'utilisateur et retourne au formulaire de recherche
If rcd.RecordCount <> 0 Then
MsgBox " Une réservation existe déjà pour cette date !"
Else:
'Libération des objets
rcd.Close
Set rcd = Nothing


' définition d'une nouvelle requête Action
Set rcd = db.OpenRecordset("T_Location", dbOpenTable)
'Passe en mode Ajout
rcd.AddNew
'Affecte les différents champs
rcd.Fields("NumeroLocation").Value = Me.NumeroLocation
rcd.Fields("NomUtilisateur").Value = Me.NomUtilisateur
rcd.Fields("DateDebutReservation").Value = Me.DateDebutReservation
rcd.Fields("DateFin Reservation").Value = Me.DateFin_Reservation
rcd.Fields("LieuDepart").Value = Me.LieuDepart
rcd.Fields("LieuArrivee").Value = Me.LieuArrivee
'Met à Jour
rcd.Update
End If

'Libération des objets
rcd.Close
db.Close
Set rcd = Nothing
Set db = Nothing
StrChaineSQL = ""


Exit_Commande12_Click:
Exit Sub


Err_Commande12_Click:
If Err.Number = 3022 Then
MsgBox " Une réservation existe déjà pour cette date !"
Else:
MsgBox Err.Description
End If
Resume Exit_Commande12_Click

End Sub
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
20 sept. 2005 à 16:25
Ah oui j'ai oublier, dans mon exemple ci-dessus, j'ai préalablement indexé sans doublons le champ "DateDebutReservatio". Raison pour laquelle j'ai mis une gestion d'erreur
If Err.Number = 3022 Then
MsgBox " Une réservation existe déjà pour cette date !"

voilà j'espère avoir bien compris ton problème
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
20 sept. 2005 à 17:05
Voila c'est ca que je cherche sauf qu'il m'envoie toujours balader avec le type database!!!
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
21 sept. 2005 à 10:50
Dans l’exemple que je t’ai donné, je suis parti du principe que tu souhaitais exécuter une requête basé sur une table de ta base ouverte. D’où mon " Set db = CurrentDb "


Pour ma part cela fonctionne bien! Peux-tu nous dire le message d'erreur exact?
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
21 sept. 2005 à 10:56
Le message d'erreur est: type non defini par l'utilisateur!! tunning max est ce que tu pourrais me donner le code d'ouverture de la base que tu utilise stp!
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
21 sept. 2005 à 18:37
En fait si j'ai bien compris ce qu'il te faut c'est un code de connexion à ta base de donnée. Il existe plusieurs methode de connexion, en voilà une parmis d'autres. Tu pourra trouver de nombreuse methodes sur ce site

Dim wrk As Workspace


Dim db As Database, cnx As Connection




Set wrk = CreateWorkspace ("", "Username", "", dbUseJet)


Set db = wrk.OpenDatabase ("Ma base de donnée")
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
27 sept. 2005 à 10:21
J'ai ma connection mais ma requete ne fonctionne pas!!

"SELECT T_Location.DateDebutReservation, T_Location.DateFinReservation
FROM T_Location WHERE (((T_Location.DateDebutReservation) BETWEEN
#DateDebut# AND #DateFin# ) AND
((T_Location.DateFinReservation) between #DateDebut# AND #DateFin#));"

Pourquoi elle ne marche pas svp?
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
27 sept. 2005 à 11:31
j'ai rectifier ma requete mais toujours une incompatibilité!!

"SELECT T_Location.DateDebutReservation,
T_Location.DateFinReservation FROM T_Location WHERE
(((T_Location.DateDebutReservation) BETWEEN #" & DateDebut &
"# AND #" & DateFin & "# ) AND
((T_Location.DateFinReservation) between #" & DateDebut & "#
AND #" & DateFin & "#));"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 12:02
salut,
essai en enlevant les # et le ;
PCPT
0
Neo Bahamut Messages postés 16 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 27 septembre 2005
27 sept. 2005 à 12:08
C'est la meme chose erreur d'execution13 :incompatibilité de type!!

D'apres vous si je veux changer le format de mes champs DateDebut et
DateFin (jj/mm/yyyy) en format date sql (mm/jj/yyyy) , ca donnerait
quoi en code?!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 12:24
Format(DateDebut, "MM/JJ/YYYY")
mais à faire avant la reqêtre (pour ne pas être emmerder avec les guillemets)
PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 12:24
il te faut tout de même être sûr du format date de ta base ;)
0
Rejoignez-nous