0
votes

Query de mise à jour SQL: Comptage des enregistrements avec la date actuelle

J'ai une colonne nommée clientMigrée code> du format 7/23/2019 7:56:45 am code>

J'ai une requête qui est exécutée dans une macro Pour compter les lignes où la date de date de clientMigrée est la journée actuelle. p> xxx pré>

La requête ne renvoie rien parce que clientMigré code> contient la partie horodatage qui ne contient pas équivaut à la date. p>

J'ai essayé d'envelopper clientMigraré code> dans une fonction de format afin de se comparer à la date () code>: p>

format(ClientMigrated, "dd/mm/yyyy")=Date()


1 commentaires

Je vois que vous avez édité votre question. Veuillez afficher les messages d'erreur que vous obtenez afin que nous puissions vous aider.


4 Réponses :



1
votes

considérer DateValue pour extraire la partie de date d'un champ de date / heure: xxx


10 commentaires

Malheureusement, cette syntaxe produit une boîte de dialogue "! Inconnu". Il semble que Dcount n'aime pas les fonctions dans ses paramètres.


Hmmmm ... fonctionne bien à ma fin! Comment utilisez-vous ce SQL? Vous le sauve-vous dans une requête stockée ou la construction en code? Si ce dernier, vous devez doubler les doubles citations pour être conforme à la syntaxe VBA. Mais il vaut mieux sauver comme une requête stockée. Puis exécutez l'action avec docmd.openquery .


La syntaxe est correcte, de sorte que l'erreur soit causée par autre chose. Pourrait être null valeurs dans l'un des champs de date.


C'est dans une requête stockée. Performé ci-dessus, c'est ce que j'ai: Mettre à jour le suivi en tant que t.USERMAILBOXESMIGRATED = DCOUVE ("Statut de la boîte aux lettres]" "," DateValue (client () ") Où (DateValue (T.ReportingDate) = Date ()); Exécuter les résultats de la requête dans "! Inconnu".


Utilisez-vous l'interface graphique MS Access.exe? Ou comme connexion ODBC à un fichier .mdb / .Accdb? J'ai vérifié avec ODBC et OLEDB de Python (pas VBA) avec Néanmoins Aucune question à l'aide de Dcount et / ou DateValue . Veuillez décrire votre environnement, même les versions d'accès / fenêtre. Où voyez-vous ! Inconnu ?


J'utilise Access 2016 (GUI) sur Win 10 Ver 1607. Le tableau en question est un accès natif, et non une connexion ODBC.


Ah! Je me suis reproduit. @Gustav est correct. Cela a à voir avec des valeurs manquantes, null dans la colonne. Voir Modifier en utilisant nz .


D'ACCORD. Pas clair sur la résolution. Toutes les lignes de ma table [Statut de la boîte aux lettres] ont des valeurs nulles dans la colonne clientMigrée, à l'exception de celles où une date / heure est remplie. Qu'est-ce que l'action corrective?


Avez-vous exécuté la version modifiée ci-dessus? Qu'est-ce qui a résulté?


@Parfait, vous aurez besoin d'échapper aux doubles citations entourant la date nz par défaut.



1
votes

nz doit renvoyer une valeur de date, non une chaîne, pour null : xxx


0 commentaires

0
votes

Pour utiliser un index sur clientMigraré code> Vous devez vérifier le champ DateTime pour être identique ou supérieur à aujourd'hui ( date () code>) et plus petit que demain ( DateAdd ("" d "", 1, date () code>). Le "" " code> échappe à la double citation pour le paramètre code> intervalle intimé dans le Dcount code> Critères String.

UPDATE Tracking
SET UserMailboxesMigrated = DCount("ClientMigrated", 
                                     "[Mailbox Status]", 
                                     "ClientMigrated >= Date() AND ClientMigrated < DateAdd(""d"", 1, Date())
WHERE ReportingDate = Date();


0 commentaires