À l'aide de fonctions mathématiques dans Sql avec MS Access
J'ai conçu une requête en mode SQL à l'aide de MS Access:
select floor(num1) from t1;
Quand je le lance, j'obtiens un "undefined fonction de plancher".
J'obtiens des erreurs similaires pour Ceil
, Mod
,Power
, Sign
, Sqrt
, Trunc
, et initcap
fonctions.
Le moteur de base de données SQL syntaxe ont des fonctions équivalentes?
OriginalL'auteur dharm0us | 2009-08-07
Vous devez vous connecter pour publier un commentaire.
De remplacer le Plancher() avec Int(). J'ai appris cela par la recherche dans le Accéder aux fichiers d'aide, dans ce cas, frapper F1 alors que dans le concepteur de requêtes, et la recherche de "fonctions". Qui m'a emmené à une rubrique d'aide de la comparaison de VBA et T-SQL.
Vous devriez jeter un coup d'oeil à la Accès au moteur de base de données SQL de Référence. Je ne peux pas trouver un bon site de référence pour les fonctions qui sont prises en charge par le Jet/ACE et l'Accès expression de services. Pour une raison inconnue, l'Accès de l'Aide n'a pas inclus Jet/ACE expressions, puisque Jet 3.0 et ce, âgés de ressources a finalement été retiré de MSDN a un an ou deux 🙁
Garder à l'esprit que le Jet/ACE service d'expression pour une utilisation en dehors d'Accès prend en charge un plus petit sous-ensemble de fonctions qui est possible à l'aide de l'Accès au Service d'Expression lors de l'exécution de votre SQL à l'intérieur d'Access 2007. De manière générale, le VBA5 fonctions (par opposition aux méthodes) qui impliquent des types de données simples (par opposition à, disons, des tableaux ou des objets) sont pris en charge en dehors de l'interface utilisateur d'Accès; pour une évaluation approximative de la liste des noms de fonction, voir " Utiliser le mode bac à sable opérations avec Jet 4.0 Service Pack 3 et versions section de cet article MSDN.
En outre, les fonctions de référence dans le VBE de l'aide devrait être un point de départ.
Les fichiers d'aide ne sont pas parfaits, mais une petite recherche devrait obtenir ce dont vous avez besoin.
Je ne vois pas d'indication dans le post original qu'il y a un serveur de back-end en cause. Pour le multi-joint, j'ai tendance à créer des vues sur le serveur afin de les faire et de les lier à la vue, plutôt que d'essayer de maintenir passthrough requêtes. En général, je n'aurais pas pris la peine de faire de même sauf que je trouve que le Jet est raté, en premier lieu. Jet est beaucoup plus efficace que beaucoup de gens donner tout le crédit, il me semble.
Le SQL de référence a été déplacé vers ici 2013;
OriginalL'auteur David-W-Fenton
Floor(CDbl(2))
déclencheurs d'erreur #5, "Invalid argument ou appel de procédure"CDbl(2), on obtient un nombre entier de retour 2 et pas un double 2.0 dans l'Accès
TypeName(CDbl(2))
renvoie "Double", pas "Entier". Ne soyez pas confus si elle est affichée quelque part, sans décimales, c'est toujours un Double.OriginalL'auteur keith
Comme mentionné, le Plancher n'est pas disponible dans access, vous devez utiliser int() comme une alternative. Si vous insistez sur l'utilisation du Sol, vous pouvez toujours créer un module vba fonction dans votre fichier mdb similaire à ci-dessous, mais qui est probablement excessif.
À l'instar des autres opérations mathématiques que vous avez décrits ci-dessus, vous pouvez créer des fonctions supplémentaires pour créer cette série de fonctionnalités.
OriginalL'auteur Jakkwylde