Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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!!
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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?
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 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
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 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 !"
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 21 sept. 2005 à 10:50
Dans lexemple que je tai donné, je suis parti du principe que tu souhaitais exécuter une requête basé sur une table de ta base ouverte. Doù mon " Set db = CurrentDb "
Pour ma part cela fonctionne bien! Peux-tu nous dire le message d'erreur exact?
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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!
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 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)
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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#));"
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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 & "#));"
Neo Bahamut
Messages postés16Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention27 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?!