IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Probleme avec ALLOW ZERO LENGTH STRING et NULL:


Sujet :

Modélisation

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut Probleme avec ALLOW ZERO LENGTH STRING et NULL:
    Bonjour a tous,
    Je me sers du code ci-dessous fourni par ce site pour me debarrasser des ZLS(zero length string c-a-d “”) mais cela ne marche pas.
    http://allenbrowne.com/bug-09.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Function FixZLS()
        Dim db As DAO.Database
        Dim tdf As DAO.TableDef
        Dim fld As DAO.Field
        Dim prp As DAO.Property
        Const conPropName = "AllowZeroLength"
        Const conPropValue = False
     
        Set db = CurrentDb()
        For Each tdf In db.TableDefs
            If (tdf.Attributes And dbSystemObject) = 0 Then
                If tdf.Name <> "Switchboard Items" Then
                    For Each fld In tdf.Fields
                        If fld.Properties(conPropName) Then
                            Debug.Print tdf.Name & "." & fld.Name
                            fld.Properties(conPropName) = conPropValue
                        End If
                    Next
                End If
            End If
        Next
     
        Set prp = Nothing
        Set fld = Nothing
        Set tdf = Nothing
        Set db = Nothing
    End Function
    Après execution du code, la propriete de ALLOW ZERO LENGTH de la table (en mode design)se positionne effectivement sur NO mais cela n’a aucun effet sur mes requetes.
    Le code suivant continue par me retourner des resultats alors que je ne devais rien obtenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select *
    From T1
    Where T1.strPrenom = “”
    Merci de me donner un coup de pouce.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 708
    Points : 57 345
    Points
    57 345
    Billets dans le blog
    41
    Par défaut
    bonjour,

    je dirais que les nouvelles saisies ne permettent pas d'entrer des chaînes vides mais pour autant celles qui étaient déjà saisies avant la manip ne sont pas modifiées.

    Tu veux faire quoi exactement quand tu as un prénom="" ?
    Supprimer carrément l'enregistrement ? Le remplacer par Null ? par un "?" ? Par autre chose ?

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    Merci de ta prompte reponse.
    Je veux simplement me debarrasser de toutes les chaines vides qui existent déjà c-a-d les remplacer par de “VRAIS NULL”.
    L’exemple de Prenom=”” etait juste pour checker si le code a marche ou pas.

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    j’ai essaye de glisser le code tout enbas entre les lignes 15 et 16 mais renvoie parfois des noms bizarres du genre et cela fait echouer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strSQL = "UPDATE " & "[" & tdf.Name & "]" & " SET " & _
    "[" & fld.Name & "]" & "=Null WHERE " & _
    "[" & fld.Name & "]" & " =''"
    'Debug.Print strSQL
    DB.Execute strSQL

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 708
    Points : 57 345
    Points
    57 345
    Billets dans le blog
    41
    Par défaut
    ~TMPCLP91581
    des tables temporaires, elles devraient disparaître après compactage.

    au pire ligne 12:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If tdf.Name <> "Switchboard Items" And Not tdf.Name Like "~TMP*"

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2011, 13h32
  2. Probleme avec Linq to DataSet et valeur nulle
    Par REDHEAD dans le forum Linq
    Réponses: 3
    Dernier message: 26/08/2010, 23h19
  3. problemes avec les fonction de string en c++
    Par magniaco dans le forum C++
    Réponses: 13
    Dernier message: 08/10/2006, 15h28
  4. Cannot be a zero-length string
    Par jam92400 dans le forum Access
    Réponses: 2
    Dernier message: 20/09/2006, 19h29
  5. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo