Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 15h31   #1
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 83
Points : 36
Points : 36
Par défaut Détecter la présence d'une clé primaire

Bonjour,

je viens de poser la question sur le forum asp mais on m'a conseillé de voir le forum access ou sql, alors me voilà !!

Je souhaite vérifier en si la table de la base access sur laquelle je travaille possède un clé primaire et si oui quel est le nom de ce champ.

Tout cela dans une page asp

j'ai fais plusieurs recherche sur différent forum mais à chaque fois j'obtiens des lignes de commande pour oracle et sqlplus

Merci beaucoup pour votre aide.

Frogs
frogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h47   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,


Vois si ceci fait ton bonheur.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 09h41   #3
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 83
Points : 36
Points : 36
Merci claude pour ta réponse, c'est bien cela mais à intégrer dans une page asp.
frogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h27   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Voici un exemple (VB) avec ADOX.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Function GetPrimaryKeyFields(sTable As String, sBdd As String)
Dim oCat As Object         ' ADOX.Catalog
Dim oTbl As Object         ' ADOX.Table
Dim oKey As Object         ' ADOX.Key
Dim oColn As Object        ' ADOX.Column
Dim sColns As String
 
' Nouveau catalogue
Set oCat = CreateObject("ADOX.Catalog")
' Connexion à bdd MS-Access
oCat.ActiveConnection = "PROVIDER=Microsoft.Jet.OLEDB.4.0" & _
                        ";DATA SOURCE=" & sBdd
' Table
Set oTbl = oCat.Tables(sTable)
sColns = ""
' Enumeration clés
For Each oKey In oTbl.Keys
    ' Si clé primaire (Type = 1)
    If oKey.Type = 1 Then
       ' Enumération champs
       For Each oColn In oKey.Columns
           If Len(sColns) > 0 Then sColns = sColns & ","
           sColns = sColns & oColn.Name
       Next
    End If
Next
 
GetPrimaryKeyFields = sColns
 
Set oColn = Nothing
Set oKey = Nothing
Set oTbl = Nothing
Set oCat = Nothing
End Function
sTable est le nom de la table
sBdd est le chemin complet vers la base de données (ex: C:\Data\ma base.mdb")

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h01   #5
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 83
Points : 36
Points : 36
Merci, m'en vais le tester
frogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h28   #6
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 83
Points : 36
Points : 36
Bon, j'ai testé et j'obtiens :
Microsoft VBScript compilation error '800a03ed'

Expected '('

/webprod/Resources/ressources_fr/aspmyadmin/afficher2.asp, line 9

Function GetPrimaryKeyFields sTable As String, sBdd As String

D'après mes recherches, il s'agit d'un bug microsoft qui est corrigé dans un pack de mise à jour, hors je ne peux pas en faire, .... donc merci à vous pour vos réponses et je vais essayer de détourner tout cela.
frogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 19h02   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

As-tu transformé mon exemple de code en VBS ?
Il faut, je crois, enlever les As String et As Object.

Et peut-être remplacer
Code :
1
2
' Nouveau catalogue
Set oCat = CreateObject("ADOX.Catalog")
Par
Code :
1
2
' Nouveau catalogue
Set oCat = Server.CreateObject("ADOX.Catalog")
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 12h05   #8
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 83
Points : 36
Points : 36
Je n'avais fait que la moitié du boulot !!!

Merci beaucoup pour ton aide LedZeppII

@+
frogs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h44.


 
 
 
 
Partenaires

Hébergement Web