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