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

ASP Discussion :

Savoir si une plusieurs champs Access sont vide ou non


Sujet :

ASP

  1. #21
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour PC75, Bonjour Immobilis,

    Comment allez-vous ?

    Merci à vous deux pour vos réponses.

    Je ne comprends pas bien pourquoi je doit mettre ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select jour, [12] from janvier where jour = '01'
    Tout en sachant qu'on ne connaîtra pas à l'avance l'heure de début (je présûme que le 12 correspond à l'heure de début ?).

    Par contre, le fait de l'écrire comme ça (vos deux méthodes sont correctes mais c'est vrai que les [] résoud un problème), ça fonctionne, c'est à dire que nouvelle requête SQL avec votre code sélectionne deux tables (jour(01) et 12).

    Le but est donc de savoir si le champ (par exemeple 01 octre à 12h00) est vide ou pas.

    On avance, que ferions nous sans vous

    ça

    Merci
    beegees

  2. #22
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Si tu veux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    checkSQL = "select jour, [" & hfdebut & "] from " & hfmois & " where jour = '" & hfjour & "' "

  3. #23
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut PC75, Salut Immobilis,

    En recopiant ce que tu me dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select jour, [" & hfdebut & "] from " & hfmois & " where jour = '" & hfjour & "' "
    j'obtiens ceci :

    la valeur de checkSQL est select jour, [] from where jour = ''

    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14'

    [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause FROM.

    /RSI/recup_rsi.asp, ligne 48
    Je retire alors la , après jour (parce que je présûme qu'elle ne doit pas être là), et j'obtiens ceci :

    la valeur de checkSQL est select jour [] from where jour = ''

    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14'

    [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'jour []'.

    /RSI/recup_rsi.asp, ligne 48
    Question :

    Ce checkSQL, c'est bien pour filtrer la table et ensuite aller voir si le champs est vide ?

    Merci à vous deux.

    beegees

  4. #24
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,


    checkSQL = "select jour, [" & hfdebut & "] from " & hfmois & " where jour = '" & hfjour & "' "
    Si le résultat te donne ça
    select jour, [] from where jour = ''
    C'est que tes variables hfdebut et hfjour sont vides.

  5. #25
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,
    10-13-la valeur de checkSQL est select jour [10] from janvier where jour = '01'
    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14'

    [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'jour [10]'.

    /RSI/recup_rsi.asp, ligne 48
    Le 10 est la valeur du response.write de hfdebut et le 13 du hffin.

    Les variables ont donc une valeur.

    Qu'en penses-tu ?

    Merci pour ton acharnement.

    beegees

  6. #26
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Je me permets de mettre ce nouveau message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select jour, [" & hfdebut & "] from " & hfmois & " where jour = '" & hfjour & "' "
    Avec ce code j'obtiens ceci :

    12-17-la valeur de checkSQL est select jour, [12] from janvier where jour = '01' ICIupdate janvier set 12 = 'M. VAN DAMME' WHERE jour = '01'
    Donc nikel, par contre, comment voir dans le champs hfdebut qui se trouve dans la chaîne SQL ci-dessus si il est vide ou non ?

    Merci
    beegees

  7. #27
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Ta requête est donc :
    select jour, [12] from janvier where jour = '01'
    Tu veux savoir si le champ [12] est vide ou non, c'est bien ça ?

  8. #28
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Oui tout à fait.

    J'ai un peu modifié la chaîne SQL pour que ça soit encore plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select [" & hfdebut & "] from " & hfmois & " where jour = '" & hfjour & "' "
    J'ai retiré jour,

    Si je sais que hfdebut est différent de rien, alors c'est un bon début pour la réservation, bien sur, ensuite je devrai faire le même pour le reste mais là je compte mettre une boucle.

    C'est possible quand même de savoir si elle est vide ?

    Tu commences à me faire peur toi .

    A+

    beegees

  9. #29
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    checkSQL = "select [" & hfdebut & "] as Champ from " & hfmois & " where jour = '" & hfjour & "' "
    Avec cette requête, tu créés bien un recordset ?
    Alors, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if isNull(RS("Champ")) then
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if Len(Trim((RS("Champ")))) then

  10. #30
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Avec cette requête, tu créés bien un recordset ?
    C'est là que ça coince :

    Déjà, je dois créer un recordset sur la requête ou je peux le faire sur la table ?

    Pour créer le recordset, j'ai créé une nouvelle connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim cnn2
    dim checkSQL
    set cnn2 = server.CreateObject("ADODB.CONNECTION")
    set rst2 = server.CreateObject("ADODB.Recordset")
    cnn2.open "RSI"
    checkSQL = "select [" & hfdebut & "] from " & hfmois & " where jour = '" & hfjour & "' "
    rst2.open checkSQL, "RSI"
    je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if isNull(rst2("jour")) then
    response.Write("c'est ok")
    end if
    et j'obtiens ceci :
    12-17-la valeur de checkSQL est select [12] from janvier where jour = '01'
    ADODB.Recordset erreur '800a0cc1'

    Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.

    /RSI/recup_rsi.asp, ligne 58
    Vois-tu où j'ai planté ?

    Merci et sorry

    beegees

  11. #31
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Tu fais :
    if isNull(rst2("jour")) then
    Mais le champ jour ne figure pas dans ton select. Donc, il n'existe pas dans le recordset.

  12. #32
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par pc75
    Re,

    Tu fais :


    Mais le champ jour ne figure pas dans ton select. Donc, il n'existe pas dans le recordset.
    Re,

    J'ai pensé à ça et j'ai donc fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if isNull(rst2([" & hfdebut & "])) then
    response.Write("c'est ok")
    end if
    Mais message d'erreur idem.

    Qu'en penses-tu ?

    Merci
    beegees

  13. #33
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Modifie ton select comme ça (ajoute le as Champ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    checkSQL = "select [" & hfdebut & "] as Champ from " & hfmois & " where jour = '" & hfjour & "' "
    Ensuite tu pourras faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if isNull("Champ") then
    response.Write("c'est ok")
    end if

  14. #34
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonsoir PC75, bonsoir tout le monde,

    Après avoir fais plusieurs tests, je pensais tout d'abord que ça fonctionnait mais après quelques minutes, je me suis rendu compte que ce n'étais pas le cas.

    J'ai donc fais :

    <%

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select [" & hfdebut & "] as champ from " & hfmois & " where jour = '" & hfjour & "' "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if len(("Champ")) = 0 then 
    %>
    <script language= "javascript">
    alert('La salle informatique est déjà réservée, merci de vérifier la disponibilité') ;
    </script>
    <%
    response.End()
    End if
    Donc, si le nombre de caractère de "champ" (qui correspond à un champ de ma base de donnée) est vide, alors un message javascript est lancé et on arrête l'exécution du code (response.end).

    Le problème est que quand "champ" est pas vide, il ne tient pas compte du code et met à jour la base de données (avec le code ci-dessous) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim selecttable
    selecttable = ""
    selecttable = "update " & hfmois & " set " & hfdebut & " = '" & hfuser & "' WHERE jour =  '"& hfjour & "' "
    cnn.Execute(selecttable)
    Est-ce que vous voyez ce qui ne fonctionne pas ?

    Merci d'avance pour votre aide.

    beegees

  15. #35
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-bonsoir,

    J'ai quand même rêglé le problème par moi-même.

    J'ai créé une nouvelle variable et j'y ai affecté la valeur du rst et ensuite

    if len(rst("champ") <> 0 then ....

    Et ça fonctionne

    Bonne soirée à toutes et à tous.

    beegees

  16. #36
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par pc75
    Ensuite tu pourras faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if isNull("Champ") then
    response.Write("c'est ok")
    end if
    Salut,
    PC75 a simplement oublié de mettre le nom du recordset...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if isNull(rst("Champ")) then
    response.Write("c'est ok")
    end if
    Inutile d'utiliser une variable de plus, d'autant que tu ne sembles pas l'utiliser
    J'ai créé une nouvelle variable et j'y ai affecté la valeur du rst et ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if len(rst("champ") <> 0 then ....
    Bonne nuit.
    "Winter is coming" (ma nouvelle page d'accueil)

  17. #37
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut Immobilis,

    Merci pour ta réponse.

    J'en profite pour te poser une question :

    PC75 a affecter à champ la valeur de hfdebut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select [" & hfdebut & "] as debut from " & hfmois & " where jour = '" & hfjour & "' "
    Est-il possible de faire la même chose pour hf mois et hfjour ?

    J'ai essayé mais il me semble que ça ne fonctionne pas.

    Merci pour ton aide et bon Dimanche.

    beegees

  18. #38
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par beegees
    PC75 a affecter à champ la valeur de hfdebut
    Salut,
    Il ne lui affecte pas de valeur, il renomme l'élément du recordset.
    Si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT monchamp FROM matable
    pour connaitre la valeur de "monchamp" tu fais:Par contre, si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT monchamp as toto FROM matable
    tu feras:Tu peux faire la mm chose pour chacun des éléments de ton SELECT. C'est-à-dire uniquement ce qui se trouve entre SELECT et FROM.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  19. #39
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut Immobilis,

    Comment vas-tu ?

    Je commente un peu ta réponse :

    Il ne lui affecte pas de valeur, il renomme l'élément du recordset.
    Merci pour l'info, je ne connaissais pas cette astuce.
    Si tu fais:
    Code :

    SELECT monchamp FROM matable

    pour connaitre la valeur de "monchamp" tu fais:
    Code :

    rst("monchamp")
    Là je suis pas trop d'accord :

    Quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select [" & hfdebut & "] as debut from " & hfmois & " where jour = '" & hfjour & "' "
    Donc je renomme hfdebut par debut et le rercordset s'appele rst2

    et que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst2.open checkSQL, "RSI"
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim checkhfdebut
    checkhfdebut = rst2("debut")
    Et là, il ne trouve pas l'item.

    Ensuite je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    checkSQL = ""
    checkSQL = "select [" & hffin & "] as fin from " & hfmois & " where jour = '" & hfjour & "' "
    Cela me permet de mettre hffin entre le select et le from et donc de pouvoir le renommer.

    Mais ça marche pas.

    ADODB.Recordset erreur '800a0cc1'

    Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.

    /RSI/recup_rsi.asp, ligne 82

    Qu'en pensez-vous ?

    Merci

    Beegees

  20. #40
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    As tu fait un response.write de checkSQL ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Concaténer plusieurs champs access
    Par chuchu57 dans le forum Access
    Réponses: 12
    Dernier message: 30/01/2017, 17h06
  2. Réponses: 5
    Dernier message: 04/07/2013, 15h13
  3. Réponses: 2
    Dernier message: 13/11/2007, 11h19
  4. Réponses: 6
    Dernier message: 29/06/2006, 15h00
  5. [MySQL] Les champs sont vides lors d'une mise à jour (update)
    Par gregos13 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/04/2006, 09h01

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