ADOX : comment mettre la valeur Null Interdit à NON

cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012 - 9 mars 2005 à 17:48
cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012 - 9 mars 2005 à 19:48
Bonjour,

Je suis vraiment à court de ressources! Voici mon code, je dois ajouter un champ au format date et il doit pouvoir accepter les valeurs nulles. Qu'est-ce qu'il me manque, j'ai testé Nullable sans succès.

Sans vouloir abuser, est-il possible avec ADOX de paramètrer un champ OUI/NON avec l'option "case à cocher" à la place de "zone de texte". J'ai réussi à créer le champ adboolean, mais il inscrit les valeurs 0 et 1 à la place des cases à cocher.

Merci à l'avance!

Isabelle
(Québec)

_______________________________________________________________
Dim cat As ADOX.Catalog
Dim col As ADOX.Column
Dim key As ADOX.key



Set cat = New ADOX.Catalog


cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\RVGA\BD\RVGA_BD.mdb"

Set col = New ADOX.Column
With col
.Name = "Date_dépot"
.Type = adDate

Set .ParentCatalog = cat
End With
cat.Tables("Paiements").Columns.Append col
_______________________________________________________

4 réponses

DomCabana Messages postés 14 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 9 mars 2005
9 mars 2005 à 18:02
Tu dois ajuster ces données dans la base de données elle-même

donc pour ton premier cas tu vas editer ta table sous le champ désirer tu sélectionne dans Allow Zero Length/Permettre Chaine vide : Oui
Ton champ doit être un champ texte pour y arriver

Pour un champ numérique tu sélectionne Required/Requis : Non et Default Value tu enleve le 0

Pour ton 2e cas il existe un type de champ Oui/Non qui te donneras un CheckBox avec les valeurs Vrai/Faux

si y a de quoi écrit moi je t'aiderai

Dominique
(Québec) ;)
0
cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012
9 mars 2005 à 18:36
Merci Dominique,

On est un peu loin de la solution, je veux le faire en code(c'est ça ADOX). Dans la bd même c'est très facile.

Merci quand même!

Isabelle
(Québec)
0
DomCabana Messages postés 14 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 9 mars 2005
9 mars 2005 à 19:31
Désolé j'ai lu trop rapidement.

pour les null

' BeginAttributesVB
Sub Main()
On Error GoTo AttributesXError

Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim colTemp As New ADOX.Column
Dim rstEmployees As New Recordset
Dim strMessage As String
Dim strInput As String
Dim tblEmp As ADOX.Table

' Connect the catalog.
cnn.Open "Provider='Microsoft.Jet.OLEDB.4.0';data source=" & _
"'c:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb';"
Set cat.ActiveConnection = cnn

Set tblEmp = cat.Tables("Employees")

' Create a new Field object and append it to the Fields
' collection of the Employees table.
colTemp.Name = "FaxPhone"
colTemp.Type = adVarWChar
colTemp.DefinedSize = 24
colTemp.Attributes = adColNullable
cat.Tables("Employees").Columns.Append colTemp.Name, adWChar, 24

' Open the Employees table for updating as a Recordset
rstEmployees.Open "Employees", cnn, adOpenKeyset, adLockOptimistic, adCmdTable

With rstEmployees
' Get user input.
strMessage = "Enter fax number for " & _
!FirstName & " " & !LastName & "." & vbCr & _
"[? - unknown, X - has no fax]"
strInput = UCase(InputBox(strMessage))
If strInput <> "" Then
Select Case strInput
Case "?"
!FaxPhone = Null
Case "X"
!FaxPhone = ""
Case Else
!FaxPhone = strInput
End Select
.Update

' Print report.
Debug.Print "Name - Fax number"
Debug.Print !FirstName & " " & !LastName & " - ";

If IsNull(!FaxPhone) Then
Debug.Print "[Unknown]"
Else
If !FaxPhone = "" Then
Debug.Print "[Has no fax]"
Else
Debug.Print !FaxPhone
End If
End If

End If

.Close
End With

'Clean up
tblEmp.Columns.Delete colTemp.Name
cnn.Close
Set rstEmployees = Nothing
Set cat = Nothing
Set colTemp = Nothing
Set cnn = Nothing
Exit Sub

AttributesXError:

If Not rstEmployees Is Nothing Then
If rstEmployees.State = adStateOpen Then rstEmployees.Close
End If
Set rstEmployees = Nothing

If Not tblEmp Is Nothing Then tblEmp.Columns.Delete colTemp.Name

Set cat = Nothing
Set colTemp = Nothing

If Not cnn Is Nothing Then
If cnn.State = adStateOpen Then cnn.Close
End If
Set cnn = Nothing

If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If

End Sub
' EndAttributesVB



pour les cases à cocher tu en demande peut-être un peu trop (c'est ca ADOX)
0
cs_Maroxye Messages postés 177 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 16 octobre 2012
9 mars 2005 à 19:48
Tu es super! Ça fonctionne, merci!

Comme preuve qu'on peut chercher longtemps un simple paramètre....J'ai quasiment passé l'avant-midi à chercher sur Internet et à tester.

Un gros merci encore,

Isabelle
(Québec)
0
Rejoignez-nous