A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
もう既回答で解決しましたか。
ーーー
質問文章表現で不思議におもう箇所があります。
●この質問はVBA(エクセルの)質問ですか
操作でも、データー外部データの取り込みークエリの編集で
クエリ(SQL)が使えるし、SQL文コード(ステートメント)の直接加工できるので、どちらの質問か迷って良くわからない。
回答補足を読むとVBAらしい。
>ExcelからAccessのクエリを呼び出したい
クエリとはSQL機能のクエリ機能ことですか。テーブルから派生したクエリデータのこと。
データはアクセスのテーブル・クエリのデータですか、エクセルですか
>ExcelのVBA上の選択SQLでEditとUpdateで処理しようと思ったのですが
エクセルVBAでもできるのでしょうが、なぜエクセルでそこまでやるのか。
「EditとUpdate」はSQLステートメントではなく、ADO・DAOの中で出てくる言葉なんですが、EditとUpdateを編集・更新という意味で一般的に言っているのですか。
>ExcelからAccessのクエリを呼び出す方法がわかりません。
マクロの記録をとれば、操作で実行された、SQL文ほかがコードで出ます。
ーーー
どうもユーザー関数がうまく走らないというのが質問内容らしいが、それなら、質問を改めて、出したら。
その際はエラー原因の質問なので、関係しそうなコードぐらい出して
質問すべきです。
>処理できるレコード数に制約があるようでエラー
これも2万件では、見当違いと思うが、断定的に言ってますが、自分の意見を振り回さず、質問したら。
思いついた・頭にある言葉をちりばめるのは、質問の焦点がぼやけると思います。
以上質問する際のご参考にしてください。
No.5
- 回答日時:
肝心なことを忘れてました (^_^;)
ご質問者さんのオリジナルのモジュールを提示できませんか?
Accessの関数をExcelへ持ってきて
Excel内だけで完結させた方が良いような気がします。
この回答への補足
Public Function Get_Url2(BaseUrl As String, Param As String, Key As String) As String
Dim pUrl As String
pUrl = Replace(BaseUrl, "&ap=Param", "&ap=" & UrlEncodeEUC(Param & pkey))
Get_Url2 = pUrl
End Function
UrlEncodeEUCはこれです。
http://www.geocities.co.jp/SilkRoad/4511/vb/urle …
何をしようとしているかというと、UrlのフィールドがあってそこにUrlエンコードしたパラメータをくっつけたいのです。
まぁ、テーブルに保存しなくてもいいのですが・・
また、アップデートしたデータは元データとは別のフィールドに保存しようとしています。
なのでrs!フィールド8 = Replace(rs!フィールド8, "区", "○")でなくて
rs!フィールド9 = Replace(rs!フィールド8, "区", "○")って感じでしょうか・・・
No.4
- 回答日時:
ご質問者のオリジナルのモジュールは提示できませんか?
当方で12万件のレコードセットを回しましたがエラーにはなりませんが?
Sub test()
'要参照設定Microsoft DAO 3.x Object Library
Dim db As DAO.Database
Dim rs As DAO.Recordset
'フィールド8
Set db = dbengine.OpenDatabase("g:\zipxp.mdb")
Set rs = db.OpenRecordset("select * from ken_all", dbOpenDynaset, dbDenyWrite)
BeginTrans
Do Until rs.EOF
rs.Edit
rs!フィールド8 = Replace(rs!フィールド8, "区", "○")
rs.Update
rs.MoveNext
Loop
CommitTrans
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub
追伸
Access同士(mdb から 別のmdb中の関数自作呼び出し)なら
参照設定を行って出来るのですがExcelからAccessはさすがに無理のようです。
方法が有るのかもしれませんが・・
No.3
- 回答日時:
#02です。
#01さんの補足にあるSQLエラーは見直していただくとして…共有ロック数の上限は規定値では9,500程度のようですから、補足にあるようにレジストリ(MaxLocksPerFile)を直すか、
DAO.DBEngine.SetOption dbmaxlocksperfile,25000
のようにSetoptionメソッドを記述する必要があります。
これらの手段が難しいのであれば、9,500件以下になるようにsqlの条件を見直すしかないと思います。
No.2
- 回答日時:
その件数の制約については分かりませんが、COMMIT命令は適時入れていますか?
通常DBのレコードを一括で更新するときに件数でエラーとなる場合は、ROLLBACKできるレコード件数が制約事項となるケースがほとんどだと思います。
例えば10件処理したら、1回COMMITを発行ようにすれば、今のEXCEL VBAでも処理できるかもしれませんよ。
直接の回答にならなくてすみません。
この回答への補足
『ファイルの共有ロック数が制限を超えています』のエラーですね。レジストリを触ると解決できるようなのですが、ちょっと触れないもので・・・。
commitとrollbackですが使ったことがないのです。サンプルがあるのですがちょっと、意味合いが違っているような感じでした。
何かいいのをご紹介願えないでしょうか?
No.1
- 回答日時:
こんな風かも?
Sub test()
'要参照設定Microsoft DAO 3.x Object Library
Dim db As DAO.Database
Set db = dbengine.OpenDatabase("mdbへのフルパス")
db.Execute "アクションクエリ", dbFailOnError
db.Close: Set db = Nothing
End Sub
ご回答ありがとうございます。
自作関数をSQLの中に入れているのですが『式に未定義関数があります。』で止まりました。
そもそも選択SQLで1レコードずつ処理しようとしたのはこのエラーのためだったのですが、Excelから直接、Access内のクエリーを呼び出してもダメだったんですね。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAをつかってクエリの情報を抽...
-
実行時エラー3131 FROM 句の構...
-
in 'where clause'のエラーの理由
-
PHP(PDO)でDBの情報を完全一...
-
SQL文が実行できません
-
LocalのNotesメールDBをVBAで参...
-
エラー3011
-
MySQLでデータベースにデータin...
-
JAVA SQLServerException 列名 ...
-
PHPで[]の使い方について
-
エクセルVBAについて
-
mysql_insert_id()の使い方
-
<VB.NET>INSERT文でDBにデータ...
-
ResultSetインターフェイスでの...
-
sortable ギブアップです…助け...
-
変数にNULLを代入したい
-
VB.NET エラーになる箇...
-
アラートでyes noを作りたいです。
-
OracleからAccessへのインポート
-
チェックボックスでチェックし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
SQL文が実行できません
-
エラー3011
-
LocalのNotesメールDBをVBAで参...
-
in 'where clause'のエラーの理由
-
codeigniter 複数モデルでトラ...
-
PEAR でprepareメソッドがエラーに
-
SELECT文を発行して、ACCESSよ...
-
PHP(PDO)でDBの情報を完全一...
-
PHP5でpostgresqlのデータベー...
-
PDOで取得される値がすべて文字...
-
VB.NET
-
データフォームウィザードで追...
-
ExcelVBAでAccessのデータを検...
-
SQLiteでカラムを追加
-
Accessのテーブルへ複数の主キ...
-
VBSの中で書くSQL文の記...
-
SELECT COUNTで取得した結果の表示
おすすめ情報