Probleme de recordset dans base de données
gg
-
Tom_Sayer Messages postés 26 Statut Membre -
Tom_Sayer Messages postés 26 Statut Membre -
salut tt le monde !!!
je dois poursuivre le programme de quelqu'un et je ne comprend pas l'origine de l'erreur n°91 dont le code est :
Private Sub cmdUpdate_Click()
'Dim fso As New FileSystemObject
Dim Nom As String
'fso.CopyFile "\\Seasv2\Duplication\BD_gest_prog\Logiciels.mdb", "C:\Temp\Base Donnée\"
Nom = "Nom = '" & DataCombo1.Text & "'"
frmNouveauService.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmNouveauService.Data1.RecordSource = "NouveauService"
frmNouveauService.Adodc1.ConnectionString = frmCheminOLE.txtFields.Text
frmNouveauService.Adodc1.RecordSource = "NouveauService"
frmNouveauService.Data1.Refresh
frmNouveauService.Adodc1.Refresh
frmNouveauService.Data1.Recordset.FindFirst Nom 'erreur à cette ligne
If frmService2.DataCombo1.Text = "" Then
MsgBox "Aucun service n'a été sélectionner, veuillez vérifier votre saisie"
Else
If frmNouveauService.Data1.Recordset.Fields("Type de tableau") = "Divers Atelier et BE" Then
'MsgBox "Vous n'avez pas accès à ces tableaux mais uniquement aux tableaux BE SEA"
frmTableauType1.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmTableauType1.Data1.RecordSource = "TableauType1"
frmTableauType1.Show
frmTableauType1.Data1.Refresh
End If
If frmNouveauService.Data1.Recordset.Fields("Type de tableau") = "Problèmes programmes" Then
'MsgBox "Vous n'avez pas accès aux problèmes du BE SEA, choisissez un autre service"
frmTableauType2.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmTableauType2.Data1.RecordSource = "TableauType2"
frmTableauType2.Show
frmTableauType2.Data1.Refresh
End If
End If
End Sub
merci d'avance
ciao
je dois poursuivre le programme de quelqu'un et je ne comprend pas l'origine de l'erreur n°91 dont le code est :
Private Sub cmdUpdate_Click()
'Dim fso As New FileSystemObject
Dim Nom As String
'fso.CopyFile "\\Seasv2\Duplication\BD_gest_prog\Logiciels.mdb", "C:\Temp\Base Donnée\"
Nom = "Nom = '" & DataCombo1.Text & "'"
frmNouveauService.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmNouveauService.Data1.RecordSource = "NouveauService"
frmNouveauService.Adodc1.ConnectionString = frmCheminOLE.txtFields.Text
frmNouveauService.Adodc1.RecordSource = "NouveauService"
frmNouveauService.Data1.Refresh
frmNouveauService.Adodc1.Refresh
frmNouveauService.Data1.Recordset.FindFirst Nom 'erreur à cette ligne
If frmService2.DataCombo1.Text = "" Then
MsgBox "Aucun service n'a été sélectionner, veuillez vérifier votre saisie"
Else
If frmNouveauService.Data1.Recordset.Fields("Type de tableau") = "Divers Atelier et BE" Then
'MsgBox "Vous n'avez pas accès à ces tableaux mais uniquement aux tableaux BE SEA"
frmTableauType1.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmTableauType1.Data1.RecordSource = "TableauType1"
frmTableauType1.Show
frmTableauType1.Data1.Refresh
End If
If frmNouveauService.Data1.Recordset.Fields("Type de tableau") = "Problèmes programmes" Then
'MsgBox "Vous n'avez pas accès aux problèmes du BE SEA, choisissez un autre service"
frmTableauType2.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmTableauType2.Data1.RecordSource = "TableauType2"
frmTableauType2.Show
frmTableauType2.Data1.Refresh
End If
End If
End Sub
merci d'avance
ciao
A voir également:
- Probleme de recordset dans base de données
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Base de données vide tnt - Forum TNT / Satellite / Réception
- Formules mathématiques de base - Télécharger - Études & Formations
14 réponses
je suis desole, mais j'ai un peu de mal a suivre sans avoir la base de donnee sous les yeux...
essai ca :
Private Sub cmdUpdate_Click()
dim db as database, re as recordset
Dim Nom As String
Set db=OpenDatabase(frmCheminBase.txtFields.Text)
set re=db.Openrecordset("NouveauService")
Nom = "Nom = '" & DataCombo1.Text & "'"
frmNouveauService.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmNouveauService.Data1.RecordSource = "NouveauService"
frmNouveauService.Adodc1.ConnectionString = frmCheminOLE.txtFields.Text
frmNouveauService.Adodc1.RecordSource = "NouveauService"
re.Findfirst Nom
if not re.nomatch then
frmNouveauService.Data1=re(le champ adecouate, la je sais pas...)
end if
If frmService2.DataCombo1.Text = "" Then
MsgBox "Aucun service n'a été sélectionner, veuillez vérifier votre saisie"
Else
If frmNouveauService.Data1.Recordset.Fields("Type de tableau") = "Divers Atelier et BE" Then
........................
essai ca :
Private Sub cmdUpdate_Click()
dim db as database, re as recordset
Dim Nom As String
Set db=OpenDatabase(frmCheminBase.txtFields.Text)
set re=db.Openrecordset("NouveauService")
Nom = "Nom = '" & DataCombo1.Text & "'"
frmNouveauService.Data1.DatabaseName = frmCheminBase.txtFields.Text
frmNouveauService.Data1.RecordSource = "NouveauService"
frmNouveauService.Adodc1.ConnectionString = frmCheminOLE.txtFields.Text
frmNouveauService.Adodc1.RecordSource = "NouveauService"
re.Findfirst Nom
if not re.nomatch then
frmNouveauService.Data1=re(le champ adecouate, la je sais pas...)
end if
If frmService2.DataCombo1.Text = "" Then
MsgBox "Aucun service n'a été sélectionner, veuillez vérifier votre saisie"
Else
If frmNouveauService.Data1.Recordset.Fields("Type de tableau") = "Divers Atelier et BE" Then
........................
ok
en fait tu as un objet, et tu essaie d'affecter un valeur a une propriete qui n'existe pas sur cet objet.
Sais-tu a quel ligne il plante ?
en fait tu as un objet, et tu essaie d'affecter un valeur a une propriete qui n'existe pas sur cet objet.
Sais-tu a quel ligne il plante ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok, j'avais pas vus...
c'est quoi tous les objets
frmNouveauService "un sous formulaire ?"
Data1 ca je sais pas...
En gros, tu peux pas faire une recherche sur l'objet Data1, si c'est une combo, affecte lui directement la valeur.
c'est quoi tous les objets
frmNouveauService "un sous formulaire ?"
Data1 ca je sais pas...
En gros, tu peux pas faire une recherche sur l'objet Data1, si c'est une combo, affecte lui directement la valeur.
pour que je sache ce que je doit mettre dans re(....)
tu peut me dire a quoi correspond cette commande
if not re.nomatch then
frmNouveauService.Data1=re(le champ adecouate, la je sais pas...)
end if
merci
tu peut me dire a quoi correspond cette commande
if not re.nomatch then
frmNouveauService.Data1=re(le champ adecouate, la je sais pas...)
end if
merci
Je pense que "NouveauService" est une table ou une requete, et frmCheminBase.txtFields.Text est une base de donnees
donc lorsque j'ecris
Set db=OpenDatabase(frmCheminBase.txtFields.Text)
set re=db.Openrecordset("NouveauService")
je dis que db est la base de donnees et re est la table ou bien la requete dans cette base de donnees
ensuite
re.Findfirst Nom
je regarde si le critere NOM est dans la table
et si il le trouve
if not re.nomatch then
frmNouveauService.Data1=re(le champ adecouate, la je sais pas...)
end if
je lui affecte la valeur du champs. En gros ecrit re(nom_du_champs dont tu veux la valeur)
je pense que le nom du champs s'appele Nom
donc lorsque j'ecris
Set db=OpenDatabase(frmCheminBase.txtFields.Text)
set re=db.Openrecordset("NouveauService")
je dis que db est la base de donnees et re est la table ou bien la requete dans cette base de donnees
ensuite
re.Findfirst Nom
je regarde si le critere NOM est dans la table
et si il le trouve
if not re.nomatch then
frmNouveauService.Data1=re(le champ adecouate, la je sais pas...)
end if
je lui affecte la valeur du champs. En gros ecrit re(nom_du_champs dont tu veux la valeur)
je pense que le nom du champs s'appele Nom
FIndFitrst te permet de trouver une valeur dans un objet recordset.
dans ton programme, il va chercher dans le champs Nom la valeur DataCombo1.Text
car au debut tu as ecrit :
Nom = "Nom = '" & DataCombo1.Text & "'"
dans ton programme, il va chercher dans le champs Nom la valeur DataCombo1.Text
car au debut tu as ecrit :
Nom = "Nom = '" & DataCombo1.Text & "'"
bonsoir
<
si vous avez ce message surement l'ouverure de la base a echouée c'est pourqoui le recordset se bloque avec votre message .........
lancez un module et tapez une requete open_base
puis au niveau de
private sub _form load ()
call open _base
end sub
surement l'open de la base a échoué
de plus j'ai remarqué ds votrre code que le paramétrage se rélaise ds les propriété du Data control , flexgrid , .... pour évite d'avoir un code ambigu plus on simplifie plus on réduit la marge d'erreur
Peut être le tableau au musée est le seul objet qui écoute l
pour mémoire
lancez un module independent
dim db as database
dim st as recordset
public sub open _base ()
set db= opendatabase("c:\gestion\service.mdb")
set st= db.openrecordset("client", dbopentable")
msgbox" open base réussi",vbcritical
<
si vous avez ce message surement l'ouverure de la base a echouée c'est pourqoui le recordset se bloque avec votre message .........
lancez un module et tapez une requete open_base
puis au niveau de
private sub _form load ()
call open _base
end sub
surement l'open de la base a échoué
de plus j'ai remarqué ds votrre code que le paramétrage se rélaise ds les propriété du Data control , flexgrid , .... pour évite d'avoir un code ambigu plus on simplifie plus on réduit la marge d'erreur
Peut être le tableau au musée est le seul objet qui écoute l
pour mémoire
lancez un module independent
dim db as database
dim st as recordset
public sub open _base ()
set db= opendatabase("c:\gestion\service.mdb")
set st= db.openrecordset("client", dbopentable")
msgbox" open base réussi",vbcritical
OK, je suis desole j'ai fait une erreur, comme je te le dit plus haut, confirme moi que
NouveauService est soit une table, soit une requete
frmCheminBase.txtFields.Text est une base de donnees
si NouveauService est une table ou une requete, verifie qu'il y a le champs nom
Enfin, si NouveauService est une table, a la place d'ecrire
set re=db.Openrecordset("NouveauService")
ecris
set re=db.Openrecordset("SELECT NouveauService.* FROM NouveauService")
si c'est une requete, c'est un peu plus compliquer
Dim Req As QueryDef
Set Req = db.QueryDefs("NouveauService")
set re=db.openrecordset(req.sql)
voila, si tu veux ecrit moi un mail, je te repondrai plus vite
A+
NouveauService est soit une table, soit une requete
frmCheminBase.txtFields.Text est une base de donnees
si NouveauService est une table ou une requete, verifie qu'il y a le champs nom
Enfin, si NouveauService est une table, a la place d'ecrire
set re=db.Openrecordset("NouveauService")
ecris
set re=db.Openrecordset("SELECT NouveauService.* FROM NouveauService")
si c'est une requete, c'est un peu plus compliquer
Dim Req As QueryDef
Set Req = db.QueryDefs("NouveauService")
set re=db.openrecordset(req.sql)
voila, si tu veux ecrit moi un mail, je te repondrai plus vite
A+
je vais faire un peu plus court, dan le cas ou NouveauService est un requete, ecrit juste
set re=db.openrecordset(db.querydefs("NouveauService").sql)
set re=db.openrecordset(db.querydefs("NouveauService").sql)
une table contient les donnees, une requete permet de trier les donnees d'une table
va voir la, y'a un tutorial tres bien fait
http://www.self-access.com/
va voir la, y'a un tutorial tres bien fait
http://www.self-access.com/