Meilleur auteur de réponses
Comment contrôler l'existence d'une table dans une base de données

Question
-
J'ai créé une base de données "Tartempion.mdb" et je voudrais afficher dans une feuille de contrôle si des tables existent dans cette base. Ceci afin de ne pas lancer une deuxième fois une procédure de création. J'ai essayé un tas de solutions mais aucune ne fonctionne. J'ai besoin d'un coup de main.
Pour plus de précision, voilà ma démarche :
- j'ouvre ma feuille de travail
- j'ai disposé sur cette feuille un certain nombre de bouton correspondant à des tables
- je désire faire un "enabled=false" sur un bouton lorsque la table correspondante existe
- lorsque je clique sur ce bouton, je créé la table et je masque le bouton
Je remercie d'avance celui qui m'aidera.
Réponses
-
Vous devez avoir une commande SQL
http://msdn.microsoft.com/fr-fr/library/9kcbe65k.aspx
Public Function TableExists(ByVal TableName As String, _ ByVal connectionString As String) As Boolean Dim queryString As String = "Select * From Sys.tables Where [Name]=" + tableName Dim bRet As Boolean = False Using connection As New SqlConnection(connectionString) connection.Open() Dim command As New SqlCommand(queryString, connection) Dim reader As SqlDataReader = command.ExecuteReader() While reader.Read() bRet = True End While reader.Close() End Using Return bRet End Function
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse dédé le routier vendredi 18 avril 2014 12:11
-
L'extension .MDB était pour les fichiers Access 2003 et avant et c'est ça qui m'a mis sur une piste erronée. Désolée de vous faire perdre ce temps.
Ici vous avez un article sur ce sujet :
http://www.codeproject.com/Articles/30957/Check-if-a-table-or-field-exists-in-a-database
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse dédé le routier lundi 28 avril 2014 12:53
-
Le problème est avec WinXP. Pensez à un upgrade (matériel et système d’exploitation). Au moins pour le développement, vous ne pouvez pas utiliser les derniers outils.
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse dédé le routier lundi 28 avril 2014 14:12
Toutes les réponses
-
-
Bonjour,
le code SQL SERVER suivant
USE DBName GO SELECT * FROM sys.Tables GO
vous permet de récupérer tous les noms des tables de votre base de données. Il vous suffit ensuite de comparer les résultats avec le nom de table qui vous intéresse.
Nimzozo, from France.
- Modifié Nimzozo mercredi 16 avril 2014 14:32
- Proposé comme réponse Aurel Bera jeudi 17 avril 2014 09:19
- Marqué comme réponse dédé le routier jeudi 17 avril 2014 11:31
- Non marqué comme réponse Aurel Bera jeudi 17 avril 2014 14:55
-
-
-
Bonjour
Cela fonctionne ou non?
Vous avez marquée comme réponse", mais après vous parlez des "insultes".
Normalement vous devez marquer comme réponse seulement s'il fonctionne.
Sinon, pouvez-vous nous montrer le code qui exécute la requête?
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Vous exécutez ce code à partir de VB?
Essayez de exécuter une commande: "select * from sys.tables where [name]=" + nom_table.
Si après exécution vous avez une ligne dans le retour la table existe.
Sinon la table n'existe pas.
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel Bera jeudi 17 avril 2014 12:10
-
J'ai essayé de comprendre la marche à suivre mais je suis dans une impasse. En effet, je me retrouve toujours avec un retour.
J'ai fait :
TableName = .txtPseudo.Text ' C'est le nom de la table
TableExist =
"Select * From Sys.tables Where [Name]=" + TableName.stbComment.Text = TableExist.ToString
If TableExist.Length > 0 Then
.cmdCréBasePodo.Enabled =
False ' je bloque le bouton.lblCréPodo.Enabled =
False ' je masque le labelEnd If
Je pense que je n'ai pas compris le fonctionnement de cette astuce. Merci pour un développement de cette instruction.
-
Vous devez avoir une commande SQL
http://msdn.microsoft.com/fr-fr/library/9kcbe65k.aspx
Public Function TableExists(ByVal TableName As String, _ ByVal connectionString As String) As Boolean Dim queryString As String = "Select * From Sys.tables Where [Name]=" + tableName Dim bRet As Boolean = False Using connection As New SqlConnection(connectionString) connection.Open() Dim command As New SqlCommand(queryString, connection) Dim reader As SqlDataReader = command.ExecuteReader() While reader.Read() bRet = True End While reader.Close() End Using Return bRet End Function
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse dédé le routier vendredi 18 avril 2014 12:11
-
-
Je me suis emballé un peu vite ! En fait, si j'ai compris la subtilité, je me retrouve avec un petit problème. Pour l'instruction ConnectingString, j'ai déclaré :
ConnectingString="Microsoft.JET.OLEDB.4.0;Data SOurce=NomDeLaTable;Persist Security Info=False;"
A l'exécution, j'ai droit à un message d'erreur "Mot clé non pris en charge provider". J'ai consulté l'aide et j'ai essayé l'instruction "
"Data Source=MSSQL1;Database=AdventureWorks;" _ & "Integrated Security=true;"
mais ça ne donne rien.
Que dois-je faire ?
Merci
-
Voir ici:
http://www.connectionstrings.com/
Database = nom de la BD = Tartempion le plus probable.
Vous ne spécifies pas le serveur, qui le plus probable est le serveur local donc localhost ou".".
Donc veuillez essayer avec :
Data Source=.;Initial Catalog=Tartempion;Integrated Security=True
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
J'ai essayé votre solution mais je me retrouve avec une erreur :
Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Named Pipes Provider, error: 40 - Impossible d'ouvrir une connexion à SQL Server)
Je ne comprends pas pourquoi.
J'ai utilisé l'instruction suivante :
ConnectionString =
"Data Source=.;Initial Catalog=SuiviCardio;Integrated Security=True" -
Essayez avec
"Data Source=.\SQLExpress;Initial Catalog=SuiviCardio;Integrated Security=True"
Sans savoir quelle version SQL Server avez-vous, peut-être c'est une version Sql Express.
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Dans Sql Server Configuration Manager qu'est qu'il vous montre? Pouvez-vous ajouter une capture d'écran?
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
Excusez-moi, mais là, je suis complètement décroché ! Pouvez-vous m'indiquer la marche à suivre pour trouver ce Sql Server Configuration Manager ? Mes connaissances en programmation ne sont que du niveau passe-temps et je n'ai jamais suivi de cours ni de formation !
Merci d'avance.
PS : j'ai essayé de 'installer ou de réinstaller Sql Server 2008 puis 2012 mais, à priori, ça n'a pas fait grand chose ! A titre d'information, je suis sous Visual Basic 2010 "Ultimate".
-
Il se trouve dans le menu de Windows, SQL. Il est un logiciel qui s'installe avec le serveur SQL.
Dans in fichier de configuration de votre application vous n'avez pas déjà un string de connexion?
Si vous utilisez la connexion déjà, le plus probable il existe déjà.Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
Vous allez dire que je suis obtu, mais je ne comprends pas la démarche ! Comment dois-je faire pour aller dans le menu de Windows ? Dois-je passer par l'explorateur ou comment ? J'ai lancé plusieurs recherches sur Sql Server Configuration Manager puis sur Sql Server COnfiguration mais ça n'a rien donné ! Je vous avoue que je patauge allègrement !!!!
Merci d'avance.
-
A priori je me suis mal exprimee. Cela depend de la version Windows installé. Menu Demarer…….. etc..
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel Bera mardi 22 avril 2014 12:45
-
A priori, j'ai trouvé dans le menu Démarrez l'information suivante : Microsoft SQL Server 2008. Lorsque je clique dessus, elle m'envoir sur une rubrique "Outils de configuration" puis "Centre d'installation SQL Server". Après, je ne sais plus quoi faire à part tenter de réinstaller !
-
Dans les Outils de Configurations il n'y a pas une autre option? Quelle version Windows utilisez-vous?
Pour SQL 2012 il est SQLServerManager11.msc.
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Dans le menu Windows – Demarer\\Executer\Services.msc Pouvez-vous trouver SQL Serveur et ajouter une capture d’écran ?
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Si SQL Serveur n'existe pas comme service, la composante serveur n'est pas bien installé.
Pour ajouter une image vous devez valider votre compte ici :
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Modifié Aurel Bera mercredi 23 avril 2014 12:28
- Marqué comme réponse dédé le routier mercredi 23 avril 2014 14:41
- Non marqué comme réponse Aurel Bera lundi 28 avril 2014 06:11
-
Ici vous avez un article sur l'installation du SQL Express 2008.
http://www.symantec.com/connect/articles/install-and-configure-sql-server-2008-express
Attention au pas 11 - nom d'instance si c'est le cas!
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Je viens de réinstaller Visual Studio 2010 mais celui-ci refuse de m'installer SQL Sever 2008. En outre, je n'ai pas réussi à installer SQL Server en utilisant votre méthode. A chaque fois, il me dit qu'il y a des éléments non-reconnus. J'en arrive à me demander si ce n'est pas le fait du Service Pack 3 ! En effet, je possède certains logiciels qui refusent de s'installer en SP3 mais le font sans problème en SP2.
Je crois que je vais abandonner l'idée de la recherche de présence de table !!!!!
Cordailement.
-
Je viens de revoir le thread. Vous parlez d'une base de données dont je pense au SQL Serveur.
Apres vous parlez d'un fichier Tartempion.mdb qui me fait penser à une vieille version Access.
Donc, vous utilisez Access?
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
L'extension .MDB était pour les fichiers Access 2003 et avant et c'est ça qui m'a mis sur une piste erronée. Désolée de vous faire perdre ce temps.
Ici vous avez un article sur ce sujet :
http://www.codeproject.com/Articles/30957/Check-if-a-table-or-field-exists-in-a-database
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse dédé le routier lundi 28 avril 2014 12:53
-
Merci pour la réponse. Enfin, ça marche ! J'aurais du, dès le départ, préciser qu'il s'agissait d'une base Access plus clairement. Merci de vous être embêter à chercher une solution à mon problème.
Par contre, pourriez-vous tenet de m'expliquer pourquoi je n'arrive pas à installer SQL Serveur Expres 2008. Je finirais par en avoir besoin un jour ou l'autre !
Cordialement
-
Le problème est avec WinXP. Pensez à un upgrade (matériel et système d’exploitation). Au moins pour le développement, vous ne pouvez pas utiliser les derniers outils.
Bien cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse dédé le routier lundi 28 avril 2014 14:12