Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Tester l'existence d'une table [ Archives Visual Basic / Divers ] (Nights)

mardi 27 février 2001 à 22:11:18 | Tester l'existence d'une table

Nights

Salut,

Je souhaite permettre a un utilisateur de choisir la table sur laquelle il travaille. Mon probleme reside dans le fait de savoir si cette table existe ou non ?

Et eventuellemnt comment faire pour creer un boite de dialogue permettant la selection d'un fichier ... Boite de dialogue qui me transmettrait ensuite le chemin d'acces au fichier choisi.

Merci,

mercredi 28 février 2001 à 04:09:05 | Re : Tester l'existence d'une table

VB_MAN

Bien moi pour vérifié si une table existe je fais ceci:

With Data1
Err.Clear
.DataBaseName = "C:Ma BD.mdb"
.RecordSource = "MaTable"
.Refresh
If Err Then
.DataBase.Close
'Il y à eu une erreur
Err.Clear
End If
.DataBase.Close
End With

Ok ce n'est peut-être pas la meilleur solution mais ca fonctionne du moin chez moi. Tu peut vérifier l'existance de la BD avant de l'envoyer au control Data de cette manière tu va savoir que si il y à une erreur ca ne seras pas parce que la BD n'existe pas! Tu peut essayer aussi de cette manière:

'En effectuant un test

With Data1
Err.Clear
.DataBaseName = "C:Ma BD.mdb"
'Tu lui envoie le nom d'une table qui n'existe pas dans ta BD
.RecordSource = "MaTable"
.Refresh
If Err Then
.DataBase.Close
'Il y à eu une erreur
MsgBox "Erreur numéro : " & Err.Number & ", " & Err.Description, vbCritical, App.Title
Err.Clear
End If
.DataBase.Close
End With

Et maintenant que tu connais le numéro de l'erreur et la description tu peut mieux gérer les erreurs qui pourrais y avoir!!!

-------------------------------
Réponse au message :
-------------------------------

Salut,

Je souhaite permettre a un utilisateur de choisir la table sur laquelle il travaille. Mon probleme reside dans le fait de savoir si cette table existe ou non ?

Et eventuellemnt comment faire pour creer un boite de dialogue permettant la selection d'un fichier ... Boite de dialogue qui me transmettrait ensuite le chemin d'acces au fichier choisi.

Merci,
-------------------------------

jeudi 1 mars 2001 à 04:49:43 | Re : Tester l'existence d'une table

Mariner

[La solu proposée utilise VB6 mais devrais fonctionner aussi avec VB4 et 5]

La réponse de VB Man est excellente, mais laisse moi te soumettre la mienne qui utilise plutôt la référence à "Microsoft DAO 3.51 Object Librairy":

Sur une forme ajoute:
Un premier bouton nommé Btn_Ouvrir
Un second nommé Btn_Rechercher
Un TextBox nommé Text1
Un ListeBox nommé List1
Un module (.BAS)

dans la Forme ajoute:


Private Sub Btn_Ouvrir_Click()
Dim Retour As Long
Dim NombreTables As Integer
Dim Cmpt As Integer


On Error GoTo ErrHndBO

With CommonDialog1
.CancelError = True
.DialogTitle = "Ouvrir une base de données"
.Filter = "Fichier Access(.MDB)|*.mdb"
.flags = cdlFILEMUSTEXIST Or cdlHIDEREADONLY Or cdlPATHMUSTEXIST
.InitDir = App.Path
Retour = .ShowOpen(Me.hwnd)

DoEvents

'
' .FileName = nom complet à partir de la racine soit "C:RépFichier.MDB"
' .FileTitle = nom seul, soit "Fichier.MDB"
'

If (Retour <> cdlCancel) Then
Set DBOuverte = DBEngine.OpenDatabase(.FileName, True, True)
List1.Clear
NombreTables = DBOuverte.TableDefs.Count
For Cmpt = 0 To (NombreTables - 1)
List1.AddItem DBOuverte.TableDefs(Cmpt).Name
Next Cmpt
Else
Exit Sub
End If
End With

Exit Sub

ErrHndBO:
MsgBox "L'erreur suivante est survenue: " & Str$(Err.Number) & " (" & Err.Description & ")", vbOKOnly + vbCritical, "Ouverture d'une base de données"

End Sub


Private Sub Btn_Rechercher_Click()
Dim RSTemp1 As Recordset
Dim TableRc As String

On Error GoTo ErrHndBR

TableRc = Trim$(Text1)
If (TableRc <> vbNullString) Then
Set RSTemp1 = DBOuverte.OpenRecordset(TableRc, dbOpenTable)
RSTemp1.Close
MsgBox "La table '" & TableRc & "' existe.", vbOKOnly + vbInformation, "Résultat de la recherche"
Else
MsgBox "Vous n'avez rien entré!", vbOKOnly, "Erreur de requête"
End If

Exit Sub

ErrHndBR:
MsgBox "La table '" & TableRc & "' n'existe pas.", vbOKOnly + vbMsgBoxRight + vbExclamation, "Résultat de la recherche"

End Sub

Private Sub Form_Load()
List1.Clear
Text1 = vbNullString
End Sub

===========

Puis dans le module:

Global CommonDialog1 As New MKCommonDialogCls
Global DBOuverte As Database

===========

Tu dois aller dans la section API du site et consulter "CLASSE COMMONDIALOG SANS L'OCX" de Amonbofis, prend sa classe.

Oui c'est compliqué comme procédure et tu devras sûrement indiquer où sont les fichiers de Amonbofis, mais je crois que cela vaux la peine, continuons...

Bon à titre d'essai, quand tu clique Btn_Ouvrir, un Common Dialog de Windows vas s'ouvrir, tu choisi n'importe quel fichier Access et la liste se remplira des noms. Maintenant, tu peux soit taper un nom dans Text1 et cliquer Btn_Rechercher ou taper l'un des noms dans la liste (suivit de Btn_Rechercher) afin de comprendre comment le code fonctionne.


-------------------------------
Réponse au message :
-------------------------------

Bien moi pour vérifié si une table existe je fais ceci:

With Data1
Err.Clear
.DataBaseName = "C:Ma BD.mdb"
.RecordSource = "MaTable"
.Refresh
If Err Then
.DataBase.Close
'Il y à eu une erreur
Err.Clear
End If
.DataBase.Close
End With

Ok ce n'est peut-être pas la meilleur solution mais ca fonctionne du moin chez moi. Tu peut vérifier l'existance de la BD avant de l'envoyer au control Data de cette manière tu va savoir que si il y à une erreur ca ne seras pas parce que la BD n'existe pas! Tu peut essayer aussi de cette manière:

'En effectuant un test

With Data1
Err.Clear
.DataBaseName = "C:Ma BD.mdb"
'Tu lui envoie le nom d'une table qui n'existe pas dans ta BD
.RecordSource = "MaTable"
.Refresh
If Err Then
.DataBase.Close
'Il y à eu une erreur
MsgBox "Erreur numéro : " & Err.Number & ", " & Err.Description, vbCritical, App.Title
Err.Clear
End If
.DataBase.Close
End With

Et maintenant que tu connais le numéro de l'erreur et la description tu peut mieux gérer les erreurs qui pourrais y avoir!!!

-------------------------------
Réponse au message :
-------------------------------

Salut,

Je souhaite permettre a un utilisateur de choisir la table sur laquelle il travaille. Mon probleme reside dans le fait de savoir si cette table existe ou non ?

Et eventuellemnt comment faire pour creer un boite de dialogue permettant la selection d'un fichier ... Boite de dialogue qui me transmettrait ensuite le chemin d'acces au fichier choisi.

Merci,
-------------------------------
-------------------------------



Cette discussion est classé dans : table, tester, existence, boite, dialogue


Répondre à ce message

Sujets en rapport avec ce message

Tester l'existence d'une table dans une bd access [ par jho ] existe-t-il une commande vba voir une macro ? Comment tester proprement l'existence d'une table dans une base avec ADO [ par globule ] Comment tester proprement l'existence d'une table dans une base avec ADO ? textbox [ par syltab ] Salutj'ai créé une boite de dialogue, ou j'ai placé un textbox pour écrire une date.Je voudrais que lorsque j'écris une date, celle ci se marque dans Personaliser la dialogbox "Open" [ par darkgibus ] Alors voila, je souhaiterai parsonaliser la boite de dialogue "ouvrir" de la dll comdlg32; pour y ajouter une zone d'aperçu de fichier.... J'ai essaye lancer programme avant boite de dialogue... [ par T103 ] sous vb j'arrive a executer un programme au demarage de mon pc, mais ce que je voudrai faire c'est de pouvoir executer mon programme avant le lancemen Tester l'existence d'un controle [ par Cranberries ] Voilà, j'ai plusieurs combo dans un forms.Je décide d'en supprimer certaine, jusque là, c'est OK.Mon problème, c'est que avant la suppression il me fa FRAMEWORK Bugué ??? [ par loulouklm ] Bonjour, Voici mon pb : j'ai fais un formulaire d'ajout de fiche (annuaire), avec photo, pour le chemin de la photo j'utilise Private Sub Button1_Clic CommonDialog!!!!!!!!!!!!!!!!!!!!!!!!!!! [ par waimea64 ] Salut je soufhaite modifier la boite de dialogue Ouvrir "CommonDialog1.ShowOpen" afin d'obtenir un boite parcourir. Pour cela il faut simplement modif Eviter la boite de dialogue avec PDF995 [ par kinouseb ] Bonjour,J'utilise PDF995 pour capturer l'impression "papier" vers un fichier .PDFMais lorsque je fais printer.enddoc, le logiciel PDF995 ouvre une boi boite de dialogue enervante; [ par daffy21 ] Sur un Prog Excel avec une Macro, je fait une copie d'un fichier A.xls dans un autre dossier.Ma méthode consiste à ouvrir le Fichier A.xls et faire un


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Appels d'offres



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.