J'ai une colonne nommée 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> La requête ne renvoie rien parce que J'ai essayé d'envelopper clientMigrée code> du format
7/23/2019 7:56:45 am code>
clientMigré code> contient la partie horodatage qui ne contient pas équivaut à la date. p>
clientMigraré code> dans une fonction de format afin de se comparer à la date
() code>: p>
format(ClientMigrated, "dd/mm/yyyy")=Date()
4 Réponses :
Vous devez utiliser supposant que vous utilisez la valeur par défaut pour format code> une fonction
date () code>, vous devriez pouvoir utiliser: p>
Cela peut ne pas fonctionner comme appliquer le format code> Render un type de chaîne non comparable au type de date. De plus, le jour - premier est un cadre régional. Vérifiez avec
debug.Print Format (CDTE ("7/24/2019 7:56:45 AM"), "mm / j / aaaa") = date () code> qui retourne
false < / code>.
Le formatage doit être appliqué sur "clientMigré" dans la DCOUVE, pas la clause WHERE.
Jerry, @parfait a raison. C'est le TimePart qui est la question. La conversion en texte échouera positivement.
considérer DateValue code>
pour extraire la partie de date d'un champ de date / heure:
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 code>.
La syntaxe est correcte, de sorte que l'erreur soit causée par autre chose. Pourrait être null i> 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 i> Aucune question à l'aide de Dcount code> et / ou
DateValue code>. Veuillez décrire votre environnement, même les versions d'accès / fenêtre. Où voyez-vous
! Inconnu code>?
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 code> dans la colonne. Voir Modifier en utilisant
nz code>.
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 code> nz code> par défaut.
nz em> doit renvoyer une valeur de date, non une chaîne, pour null em>:
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();
Je vois que vous avez édité votre question. Veuillez afficher les messages d'erreur que vous obtenez afin que nous puissions vous aider.