Type de données d'une colone SQL

papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005 - 8 juil. 2005 à 12:21
mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005 - 9 juil. 2005 à 02:00
Salut tlm, je voulais pas poser cte question sur le forum, mais n'y arrivant pas, je craque,

je souhaite recupérer le type de donnée d'une colone d'une bdd. J'ai essayé ca :



Dim nomcolRS As ADODB.Recordset

Set nomcolRS = connex.OpenSchema(adSchemaColumns, Array(Empty, Empty, "Facture"))

While Not nomcolRS.EOF

If nomcolRS("COLUMN_NAME").Value = colone.Text Then

typeColone = nomcolRS("COLUMN_NAME").type

End If

nomcolRS.MoveNext

Wend

nomcolRS.Close

Set nomcolRS = Nothing



-> MAIS il me sors toujour le meme type 202 !!! :S Qu'est-ceque j'ai mal fait????



La boucle c'est parce que cela me sortait une erreur si je mettais nomcolRS(colone.text).





Mon but est d'inserer/modifier des données selon le type de la colone
ou l'utilisateur veut inserer a cause des " & "'" &
bla.text & "'" & " ou des " & chiffre.text & " ou
des date.. Si ya un moyen de le faire en autoatique, je suis aussi
reneur :D



Sinon au moins, comment recuperer le type de données de la colone?

merci bcp !

3 réponses

mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005
8 juil. 2005 à 19:46
Il te renvoie le type de données d'un champ (propriété Type de l' objet Field ref. DAO) qui n'est autre qu'une constante!

Essaies ça:

Function FieldType(intType As Integer) As String

Select Case intType

Case dbBoolean

FieldType = "dbBoolean"

Case dbByte

FieldType = "dbByte"

Case dbInteger

FieldType = "dbInteger"

Case dbLong

FieldType = "dbLong"

Case dbCurrency

FieldType = "dbCurrency"

Case dbSingle

FieldType = "dbSingle"

Case dbDouble

FieldType = "dbDouble"

Case dbDate

FieldType = "dbDate"

Case dbText

FieldType = "dbText"

Case dbLongBinary

FieldType = "dbLongBinary"

Case dbMemo

FieldType = "dbMemo"

Case dbGUID

FieldType = "dbGUID"

End Select

End Function



Tu l'appeles avec

FieldType(nomcolRS("COLUMN_NAME").type)
0
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
8 juil. 2005 à 20:44
En fait, je c ke ca rend une constante, dans la suite de mon code je fai case dbDate,

case dbint etc....

mais en fait il ne me retourne KE 202 !!!

a tous les coup ! :s

c ca mon probleme...
0
mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005
9 juil. 2005 à 02:00
Perso j'utiliserai un autre code pour lister les champs et leur type, encore issu de la référence DAO:

Sub TypeX3()



Dim dbsNorthwind As Database

Dim qdfLoop As QueryDef



Set dbsNorthwind = OpenDatabase("Comptoir.mdb")



Debug.Print "QueryDefs dans la base de données Comptoir:"

Debug.Print " Type - Nom"



' Enumère la collection QueryDefs de la base de données Comptoir.

For Each qdfLoop In dbsNorthwind.QueryDefs

Debug.Print " " & _

QueryDefType(qdfLoop.Type) & " - " & qdfLoop.Name

Next qdfLoop



dbsNorthwind.Close



End Sub
0