エクセルVBAで、以下のユーザー定義関数(選択したセルaを全て3乗した和を求める)を使用していますが、アクセスVBAで同様の関数を使用するにはどうしたらよいでしょうか?
★アクセスVBVで実行したいプログラム
実行すると"データテーブル"の"Aフィールド"を全て3乗した和をmsgboxで表示
★エクセルで使用していたユーザー定義関数
’--------------------------------------
Function y(a As Range) As Variant
Dim r As Range
Dim result As Variant
For Each r In a
result = result + r.Value ^ 3
Next
y = result
End Function
’--------------------------------------
ぞうぞよろしくお願い致します。
No.2ベストアンサー
- 回答日時:
VBA となると、書き方は人それぞれです。
私は、DBCount関数を利用しています。
--------------------------------------------------------------------
MsgBox DBCount("SELECT Sum([A]^3) AS こたえ FROM データテーブル;")
? DBCount("SELECT SUM(ID) FROM インポート記録")
243856
? DBCount("SELECT SUM(ID^3) FROM インポート記録")
14161272936256
--------------------------------------------------------------------
Public Function DBCount(ByVal strQuerySQL As String) As Variant
On Error GoTo Err_DBCount
Dim N
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
With rst
.Open strQuerySQL, _
CurrentProject.Connection, _
adOpenStatic, _
adLockReadOnly
If Not .BOF Then
.MoveFirst ' <-- 省略可!
N = Nz(.Fields(0), 0)
End If
End With
Exit_DBCount:
On Error Resume Next
rst.Close
Set rst = Nothing
DBCount = N
Exit Function
Err_DBCount:
MsgBox "SELECT 文の実行時にエラーが発生しました。(DBCount)" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & Err.Description & Chr$(13) & _
"・SQL Text=" & strQuerySQL, _
vbExclamation, " 関数エラーメッセージ"
Resume Exit_DBCount
End Function
No.1
- 回答日時:
モジュール化すれば下記のようになります。
---
Sub y()
Dim rs As New ADODB.Recordset
Dim SQL As String
SQL = "SELECT Sum([A]^3) AS こたえ FROM データテーブル;"
rs.Open SQL, CurrentProject.Connection, _
adOpenKeyset, adLockOptimistic
MsgBox rs.Fields("こたえ")
rs.Close
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ読込時のタイムアウト
-
アクセス初心者に注意点を教え...
-
Access2019でフォームから入力...
-
(ACCESS)複数mdbからのデータ...
-
Viewにインデックスは張れ...
-
異なるスキーマからデータを抽...
-
ORA-00959: 表領域'****'は...
-
Access レコードを追加できませ...
-
Data Pump で大量データインポ...
-
シノニムってエイリアスのエイ...
-
postgreSQLのint型は桁数指定が...
-
DELETE文でFROM句を省略した場合
-
ACCESS 複数テーブル・複数フィ...
-
Oracle複数の表をもとにmerge文...
-
クエリアナライザのsp_helpコマ...
-
viewのバックアップ
-
datapumpの実行方法について
-
データを削除しても表領域の使...
-
1つのテーブル・2つの列を結合...
-
テーブルからのselectにおいて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルからアクセスにインポ...
-
ACCESS テーブルに2行目から取...
-
C#でaccdbファイルのテーブルの...
-
テーブルのリンク(ACCESS)
-
(ACCESS)複数mdbからのデータ...
-
アクセスマクロで、csv データ...
-
他ファイルのテーブルの情報を...
-
ExcelVBAにて外部データ(*.csv...
-
データ読込時のタイムアウト
-
vba 毎日行うデータの更新
-
Access2019でフォームから入力...
-
アクセス初心者に注意点を教え...
-
グループ単位にCSVファイル...
-
VBでCSVデータをMDB
-
リソースファイルとロケールに...
-
Accessでボタンを押したらエク...
-
画面から入力した値がDBに登録...
-
AccessVBAでユーザー定義関数使用
-
ACCESSとエクセルのリン...
-
jspのプログラムについて
おすすめ情報