私はこのようなMS Accessクエリ内で何かしたいが、SUBSTRINGは未定義の関数です。MS Access SQLにSUBSTRING関数と同等の機能がありますか?
SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
私はこのようなMS Accessクエリ内で何かしたいが、SUBSTRINGは未定義の関数です。MS Access SQLにSUBSTRING関数と同等の機能がありますか?
SELECT DISTINCT SUBSTRING(LastName, 1, 1)
FROM Authors;
あなたは@onedaywhenはコメントで指摘するように、彼らは本当にVBA機能ではなく、MSジェットライブラリからそれらの等価物(VBA文字列関数を使用することができます。限り関数のシグネチャが行くように、彼らは呼ばれ、同じように機能する、それらを利用できるようにするためのMS Accessの実際の存在が必要とされていない場合でも):。
SELECT DISTINCT Left(LastName, 1)
FROM Authors;
SELECT DISTINCT Mid(LastName, 1, 1)
FROM Authors;
私はこの機能を追加した既製のモジュールを見つけることができませんでしたので、私は1つを書いた:Visual Basicのにクリックし
Accessでは、マクロ領域では、データベース・ツールリボンに行きます。左上のプロジェクトエリアで、ファイルの名前を右クリックし、[挿入] - > [モジュール]を選択します。モジュールに貼り付けます:
Public Function Substring_Index(strWord As String, strDelim As String, intCount As Integer) As String
Substring_Index = delims
start = 0
test = ""
For i = 1 To intCount
oldstart = start + 1
start = InStr(oldstart, strWord, strDelim)
Substring_Index = Mid(strWord, oldstart, start - oldstart)
Next i
End Function
モジュールをmodule1(デフォルト)として保存します。
SELECT Substring_Index([fieldname],",",2) FROM table
私はmsaccess vbaで多く働いています。 私は
ようこそStackOverflowへ!あなたの答えは正しいですが、承認された回答にまだ入っていない新しい情報を提供していないので、おそらく何の票も得られません。 – CoderDennis
気むずかしポイントを
あなたはMID機能を探している
例を考える価値をあなたにお返しします「TOUT」:関連するDLLは、(私は信じて)Expsrv.dllとvbajet32です。 dllは、MSのマニュアルでJet Expression Servicesと総称しています。だから私は、彼らが文脈では「VBA関数」ではなく、ネイティブのACE/Jet表現であると考えることができると思う。 ACE/Jetでは、同等のVBA関数とは異なる式が使用されることに注意してください。 IIF():VBAは常にtrueとfalseの両方の句を評価しますが、ACE/Jetは評価しません。 – onedaywhen
@onedaywhen:ご理解いただきありがとうございます。私は "VBAの機能"を書くのを躊躇していましたが、代わりに何を書くべきか分かりませんでした。上記の文字列関数の場合、それらは明らかに同等です。 OTOH - Accessクエリでは、ユーザー定義のVBA関数を使用することもできますが、Access固有の可能性があります。 – Tomalak
Nz()はネイティブアクセスでは利用可能ですが、Excelからクエリを実行する場合は使用できません。 – Knox