Probleme de test de chaine [vb] - VB/VBA/VBS - Programmation
Marsh Posté le 13-02-2003 à 11:36:32
Code :
|
Marsh Posté le 13-02-2003 à 11:37:23
Euh, remet ton ancienne question, on pouvait y répondre, là y'a plus les éléments nécessaires
Marsh Posté le 13-02-2003 à 11:38:45
oubliez les déclarations As String * 10
Les chaînes de taille fixe ne seront plus supportées par les versions suivantes de VB.
Le problème est tout bête. La propriété Text de ton TextBox est de type String et Null ne l'est pas. Ils ne peuvent donc être comparés. Ton Text doit être comparé à "" ou à vbNullString qui veut en fait dire "" également.
Le Null ne peut être utilisé que sur des variables de type Variant.
Marsh Posté le 13-02-2003 à 11:41:07
sbucci2 a écrit : j ai ce code : |
une string ne peut pas prendre la valeur Null, cette valeur est réservée au variables de type Variant.
si tu veux tester si ta chaine est vide, essaye le code suivant:
Code :
|
Marsh Posté le 13-02-2003 à 11:42:46
MagicBuzz a écrit : Euh, remet ton ancienne question, on pouvait y répondre, là y'a plus les éléments nécessaires |
au contraire il est limpide son problème
Marsh Posté le 13-02-2003 à 11:45:29
Tout à l'heure, il avait écrit un truc en C, et demandait comment le transcrire en VB. Ce que j'ai pondu (j'ai oublié le vbNullString) correspond à son code, là on se demande pourquoi je part d'une chaîne de longueur fixe.
Sinon, les chaînes de longueur fixe sont très pratique pour lire/écrire dans des fichiers plats à l'autre d'un masque (struct) je trouve ça très mal de ne plus les supporter.
Marsh Posté le 13-02-2003 à 11:48:23
Citation : If TxtRef = vbNullString Then |
Ca marche pas non plus
données du prob
Private Sub Lance_recherche()
Dim Mabase As Database
Dim Monrs As DAO.Recordset
Dim I As Long
'Dim TxtSearch As String
Dim Query As String
Set Mabase = CurrentDb
If TxtRef = vbNull Then
MsgBox "Saisissez une réference"
Exit Sub
End If
Query = "select * from reference where ref like '" & TxtRef & "*'"
I = 0
' TxtSearch = TxtRef
Set Monrs = Mabase.OpenRecordset(Query)
'Monrs.MoveFirst
List14.RowSource = "select * from reference where ref like '" & TxtRef & "*'"
'List9.ColumnCount = 2
'While Not Monrs.EOF
' DoEvents
'list9.ItemData(0)=
' List14.Value = Monrs.Fields("id_reference" )
' List14.Value = Monrs.Fields("ref" )
' I = I + 1
' List14.ItemData(0) = I
' Monrs.MoveNext
'Wend
Monrs.Close
End Sub
Marsh Posté le 13-02-2003 à 11:50:10
essaie
trim(txtref) = ""
Marsh Posté le 13-02-2003 à 11:55:39
sbucci2 a écrit :
|
pour avoir la chaine de caractère du texte de la "zone de texte" TxtRef tu dois faire TxtRef.Text
Code :
|
Marsh Posté le 13-02-2003 à 11:56:28
bon, que contient ton txtref exactement au moment du test?
Marsh Posté le 13-02-2003 à 12:01:54
Au fait...
txtRef est un champ, pas une chaîne
La chaîne c'est txtRef.text
-- oups, désolé mareek, j'avais pas vu ton post --
Marsh Posté le 13-02-2003 à 12:07:11
Citation : If TxtRef.Text = vbNullString Then |
=>
Marsh Posté le 13-02-2003 à 12:09:28
Euh...
Poste tout ton code, parceque j'ai l'impression que c'est un joyeux bordel...
Marsh Posté le 13-02-2003 à 12:10:59
Option Compare Database
Private Sub Command11_Click()
Lance_recherche
End Sub
Private Sub Command16_Click()
' Dim Mabase As Database
'mabase.Execute(query)
End Sub
Private Sub Command4_Click()
Dim Mabase As Database
Dim Monrs As DAO.Recordset
Dim Query As String
Set Mabase = CurrentDb
Query = "Select * from lien, centre where lien.id_centre = centre.id_centre and " & _
"lien.id_pays=" & Combo0.ItemData(Combo0.ListIndex) & " and lien.id_reference = '" & List14.ItemData(List14.ListIndex) & "'"
Set Monrs = Mabase.OpenRecordset(Query)
If Monrs.EOF Then
Text7 = ""
MsgBox "Pas de centre associé"
Exit Sub
End If
Monrs.MoveFirst
'while not monrs.EOF then
' text...
' monrs.MoveNext
'wend
If Not Monrs.EOF Then
Text7 = Monrs.Fields("Adresse" )
End If
Monrs.Close
End Sub
Private Sub TxtRef_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Lance_recherche
End If
End Sub
Private Sub Lance_recherche()
Dim Mabase As Database
Dim Monrs As DAO.Recordset
Dim I As Long
'Dim TxtSearch As String
Dim Query As String
Set Mabase = CurrentDb
If TxtRef.Text = vbNullString Then
MsgBox "Saisissez une réference"
Exit Sub
End If
Query = "select * from reference where ref like '" & TxtRef & "*'"
I = 0
' TxtSearch = TxtRef
Set Monrs = Mabase.OpenRecordset(Query)
'Monrs.MoveFirst
List14.RowSource = "select * from reference where ref like '" & TxtRef & "*'"
'List9.ColumnCount = 2
'While Not Monrs.EOF
' DoEvents
'list9.ItemData(0)=
' List14.Value = Monrs.Fields("id_reference" )
' List14.Value = Monrs.Fields("ref" )
' I = I + 1
' List14.ItemData(0) = I
' Monrs.MoveNext
'Wend
Monrs.Close
End Sub
Marsh Posté le 13-02-2003 à 12:40:00
bingo!
tu dois alors faire IsNull(txtref) qui renverra True ou False suivant son état
Marsh Posté le 13-02-2003 à 12:45:43
ca marche
bravo au gagnant
et encore merci pour votre coup de main
Marsh Posté le 13-02-2003 à 11:24:54
j ai ce code :
je met rien dans txtref dans le formulaire
If TxtRef = Null Then
MsgBox "probleme"
Exit Sub
End If
pkoi il ne rentre pas le if
merci
Message édité par sbucci2 le 13-02-2003 à 11:32:34