AccessのVBAに関する質問スレです
★1 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンは必ず書きましょう。
★2 AccessのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 AccessのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
★5 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
関連スレ
Excel VBA 質問スレ Part23
http://toro.2ch.net/test/read.cgi/tech/1327763113/l50
探検
Access VBA 質問スレ Part1
■ このスレッドは過去ログ倉庫に格納されています
2012/02/06(月) 22:53:46.88
204デフォルトの名無しさん
2014/02/12(水) 15:25:40.29206デフォルトの名無しさん
2014/02/27(木) 09:57:10.80 練習がてらVBAでユーザー定義関数をつくろうかと思ったんですが思った通りのものが作れず困っています。
というか簡略化できないもんかと思っているわけですが。
OS XP
Access 2003
Function AAA(Parm01,Parm02,Parm03...) AS String ’parmは最終的にParm24までできますがここでは簡略化
If Parm01 = "S" or Parm01 = "A" then
AAA = "1"
Exit Function
Else
AAA = "0"
end if
End function
とすごく単純なものなのですが、Parm01〜Parm03(実際にはParmは24個)にはそれぞれS・A・B・Cのいずれかが入っているので
それを数値に変換する仕組みを作りたいのです。
SかAだったら1を。それ以外(B・C)だったら0を返す。
上には記載していませんが最終的にはParmの中身を全て合計した値を返すようにいじる予定です。
で、問題なんですが、IF文の中でParmの中身を判定しているわけですが、これをParmの数だけ作るのはなんか美しくない。
Parm01〜24をまとめて判定するにはどのようにするのが美しいでしょう。
ご教授頂ければ嬉しいです。
というか簡略化できないもんかと思っているわけですが。
OS XP
Access 2003
Function AAA(Parm01,Parm02,Parm03...) AS String ’parmは最終的にParm24までできますがここでは簡略化
If Parm01 = "S" or Parm01 = "A" then
AAA = "1"
Exit Function
Else
AAA = "0"
end if
End function
とすごく単純なものなのですが、Parm01〜Parm03(実際にはParmは24個)にはそれぞれS・A・B・Cのいずれかが入っているので
それを数値に変換する仕組みを作りたいのです。
SかAだったら1を。それ以外(B・C)だったら0を返す。
上には記載していませんが最終的にはParmの中身を全て合計した値を返すようにいじる予定です。
で、問題なんですが、IF文の中でParmの中身を判定しているわけですが、これをParmの数だけ作るのはなんか美しくない。
Parm01〜24をまとめて判定するにはどのようにするのが美しいでしょう。
ご教授頂ければ嬉しいです。
207デフォルトの名無しさん
2014/02/27(木) 11:20:17.13 >>206
まず24個も引数取るのを美しいか疑問に思えよ
その24個をまとめたコレクションなり配列なり用意するとか
その24個にあまり関連がないないならParamArrayつかえ
(その前提でまとめて同じ引数にするのおかしいけどな)
まず24個も引数取るのを美しいか疑問に思えよ
その24個をまとめたコレクションなり配列なり用意するとか
その24個にあまり関連がないないならParamArrayつかえ
(その前提でまとめて同じ引数にするのおかしいけどな)
208デフォルトの名無しさん
2014/02/27(木) 11:34:23.61 >>207
ParamArrayというのがあるんですね。ありがとうございます。調べてみます!
美しさに関しては超ごもっともなんですが、如何せん元のデータをいじる権限がなくてですね。
元データの開発者をぐーで殴りたいレベル。
識別コード(一意)|24ヶ月前|23ヶ月前|22ヶ月前|21ヶ月前|・・・|当月|
ってな感じなんですよ。
んでこの○ヶ月前ってのがParmになるんですけどコレクションにせよ配列にせよ、結局は同じことなので
AAA(24ヶ月前,...当月)ってやっちまったほうが早いかなと。
大変助かりました。ありがとうございます。
ParamArrayというのがあるんですね。ありがとうございます。調べてみます!
美しさに関しては超ごもっともなんですが、如何せん元のデータをいじる権限がなくてですね。
元データの開発者をぐーで殴りたいレベル。
識別コード(一意)|24ヶ月前|23ヶ月前|22ヶ月前|21ヶ月前|・・・|当月|
ってな感じなんですよ。
んでこの○ヶ月前ってのがParmになるんですけどコレクションにせよ配列にせよ、結局は同じことなので
AAA(24ヶ月前,...当月)ってやっちまったほうが早いかなと。
大変助かりました。ありがとうございます。
209デフォルトの名無しさん
2014/02/27(木) 14:06:57.28 VBAにそんなもんあんのか?構造体使うのが普通だろ
ただしVBAの構造体は遅いけどな
ただしVBAの構造体は遅いけどな
210デフォルトの名無しさん
2014/02/27(木) 14:09:36.05 有りますね、サーセンw
211デフォルトの名無しさん
2014/02/27(木) 15:11:10.30 ACCESSなら元データはテーブルじゃないのか
だったらレコードセットなり渡せば済む話だとおもうが
だったらレコードセットなり渡せば済む話だとおもうが
212デフォルトの名無しさん
2014/03/12(水) 22:15:26.86ID:W4Gp9YVD 設計の悪いDBだとたまに見る形だな
一々縦横変換とかしなきゃならんやつ
一々縦横変換とかしなきゃならんやつ
213デフォルトの名無しさん
2014/06/30(月) 22:53:54.92ID:VWrrXenH スイマセン。エクセルからACCESSのテーブルにADO接続してエクセルの行(256文字以上のテキスト)をINSERTしようとしています。ACCESS側で受けるフィールドをメモ型にしましたがエクセルからINSERTしても255文字以内しか残りません。
214デフォルトの名無しさん
2014/06/30(月) 22:54:27.08ID:VWrrXenH 続きです。
何かすっごく基本的な凡ミスな気がしてるのですが、何かここらあたりありますか?
エスパーな質問で申し訳ないです。。
何かすっごく基本的な凡ミスな気がしてるのですが、何かここらあたりありますか?
エスパーな質問で申し訳ないです。。
215デフォルトの名無しさん
2014/07/01(火) 00:30:57.04ID:0DCE/lPo メモ型はSQL使うと切れたり頭の255しか判定してくれなかったりするからなあ
エクスポートインポートとかはバグで切れちゃうし
普通に文字列INSERTで入るか試してみて
エクスポートインポートとかはバグで切れちゃうし
普通に文字列INSERTで入るか試してみて
216デフォルトの名無しさん
2014/07/21(月) 20:33:39.99ID:ufWzAtLi 171 名前:デフォルトの名無しさん[] 投稿日:2014/07/17(木) 02:49:51.87 ID:TFQGtdi0
http://www.ynsk.co.jp/nsk/knowhow/sendmail/sendmail5.htm
こちらのサイトに公開されてるアクセスのコードなんですが
Windowsの標準DLLを利用して、メールを受信、送信するプログラムを
実行したいのですが、うまく動かせません。
他のスレッドで質問しましたが、こちらに誘導されてきました。
無償で公開されてるソースコードが動かないのですが、わかる有志の方、いらっしゃいましたら
使い方おしえてください。
元スレッド:Excel VBA 質問スレ Part34
http://www.ynsk.co.jp/nsk/knowhow/sendmail/sendmail5.htm
こちらのサイトに公開されてるアクセスのコードなんですが
Windowsの標準DLLを利用して、メールを受信、送信するプログラムを
実行したいのですが、うまく動かせません。
他のスレッドで質問しましたが、こちらに誘導されてきました。
無償で公開されてるソースコードが動かないのですが、わかる有志の方、いらっしゃいましたら
使い方おしえてください。
元スレッド:Excel VBA 質問スレ Part34
217デフォルトの名無しさん
2014/07/21(月) 20:44:10.09ID:KfqA2p34 どう動かないのかぐらい書けや
218デフォルトの名無しさん
2014/07/21(月) 21:01:38.49ID:ufWzAtLi ●MDBファイルの内容
・ メールユーザ(テーブル)……利用するメールアカウントの情報を保存します。
※ 以下のように設定して下さい。
メールアドレス
POP3サーバ
ユーザ
パスワード
SMTPサーバ
リターン ← 受信時にサーバなどから通知されるメッセージが設定されます。
受信要求 ← 0(受信しない)または-1(受信する)を設定して下さい。
仮受信 ← -1(メールをサーバから消さない)または0(消す)を設定して下さい。
上記の説明通り、テーブルに必要事項を記入しましたが反応しません。
コンパイルはしました。UACを切ってファイルのアクセス権限をeveryoneに変更しました。。
動作確認済み環境が、Win2000とXPProのようで、office97、2000では動作の確認が取れてるみたいです。
自分の環境:Win7pro office2010pro
・ メールユーザ(テーブル)……利用するメールアカウントの情報を保存します。
※ 以下のように設定して下さい。
メールアドレス
POP3サーバ
ユーザ
パスワード
SMTPサーバ
リターン ← 受信時にサーバなどから通知されるメッセージが設定されます。
受信要求 ← 0(受信しない)または-1(受信する)を設定して下さい。
仮受信 ← -1(メールをサーバから消さない)または0(消す)を設定して下さい。
上記の説明通り、テーブルに必要事項を記入しましたが反応しません。
コンパイルはしました。UACを切ってファイルのアクセス権限をeveryoneに変更しました。。
動作確認済み環境が、Win2000とXPProのようで、office97、2000では動作の確認が取れてるみたいです。
自分の環境:Win7pro office2010pro
219デフォルトの名無しさん
2014/07/21(月) 21:04:27.24ID:KfqA2p34220デフォルトの名無しさん
2014/07/21(月) 21:44:14.81ID:ufWzAtLi メール受信(更新クエリというのが有るようですが、そのクエリが見当たりません。初歩的なところで止まっているような気はするのですが、外部からのデータ受ける部分のdllがwin7で動作できない理由と読んでるのですが。ご教授願います。
221デフォルトの名無しさん
2014/07/21(月) 22:38:52.22ID:DpfIQ25M ・ B_POP3(モジュール)……メールの受信とデコードを行います。
※ このモジュールを実行するためには、作業用のフォルダが必要です。
B_POP3(モジュール)の中のコーディング
「Private Const BWorkDir As String = "c:\maildata"」と
「Private Const BWorkTempDir As String = "c:\maildata\temp"」で
作業用のフォルダを指定しています。
ダウンロードしたままの設定で操作する場合、
Cドライブ直下にmaildataというフォルダとmaildataフォルダのなかに
tempというフォルダを作成して下さい。
別のフォルダを利用する場合、フォルダの指定を変更して下さい。
「Private Const c_WorkDir非消去 As Integer = -1」というコーディングがあります。
-1のままだと、1メールごとに上記作業用のフォルダの中身を削除しません。
1ユーザのメールが複数あって、それを受信した場合、作業用のフォルダには全件分のファイルを残しています。
デバック時に1ユーザごとに受信すれば、中間結果を追えるので、有効なことがあります。
ファイルには、「mail1.txt」,「mail2.txt」.....などの番号を付けています。
ファイルと受信したメールを照合させるため、テーブルに保存したメールの「件名」にも番号を付けています。
0にすると、作業用のフォルダには最後の1件分のファイルしか残りません。
安定した運用段階に入れば、0にした方がディスク負荷は小さくなります
※ このモジュールを実行するためには、作業用のフォルダが必要です。
B_POP3(モジュール)の中のコーディング
「Private Const BWorkDir As String = "c:\maildata"」と
「Private Const BWorkTempDir As String = "c:\maildata\temp"」で
作業用のフォルダを指定しています。
ダウンロードしたままの設定で操作する場合、
Cドライブ直下にmaildataというフォルダとmaildataフォルダのなかに
tempというフォルダを作成して下さい。
別のフォルダを利用する場合、フォルダの指定を変更して下さい。
「Private Const c_WorkDir非消去 As Integer = -1」というコーディングがあります。
-1のままだと、1メールごとに上記作業用のフォルダの中身を削除しません。
1ユーザのメールが複数あって、それを受信した場合、作業用のフォルダには全件分のファイルを残しています。
デバック時に1ユーザごとに受信すれば、中間結果を追えるので、有効なことがあります。
ファイルには、「mail1.txt」,「mail2.txt」.....などの番号を付けています。
ファイルと受信したメールを照合させるため、テーブルに保存したメールの「件名」にも番号を付けています。
0にすると、作業用のフォルダには最後の1件分のファイルしか残りません。
安定した運用段階に入れば、0にした方がディスク負荷は小さくなります
222デフォルトの名無しさん
2014/07/22(火) 00:54:13.17ID:aPcZAjL/ フォルダのアクセス権限の確認→念のため、everyoneに変更
ディスク負荷による動作停止の可能性→-1から0に変更したが変化なし
そもそも、動作環境は古いマシンで行われていたので
マシンスペックのリソース不足は考え難いと考えました。
もう少し、調べてみます。winsock.dllあたりが怪しいです。
パケットキャップとる以前に、ハードディスクの動作に変化が見られない。
ディスク負荷による動作停止の可能性→-1から0に変更したが変化なし
そもそも、動作環境は古いマシンで行われていたので
マシンスペックのリソース不足は考え難いと考えました。
もう少し、調べてみます。winsock.dllあたりが怪しいです。
パケットキャップとる以前に、ハードディスクの動作に変化が見られない。
223デフォルトの名無しさん
2014/07/22(火) 02:35:29.84ID:aPcZAjL/ お騒がせしました。
原因は、accessの使い方がわからないまま
クエリが非表示であることに気付かず、試そうとしたためです。
同じ環境をVM作成し、対象のクエリのSQLクエリが見えたのでそれをぱくりました。
以上
原因は、accessの使い方がわからないまま
クエリが非表示であることに気付かず、試そうとしたためです。
同じ環境をVM作成し、対象のクエリのSQLクエリが見えたのでそれをぱくりました。
以上
224デフォルトの名無しさん
2014/07/27(日) 15:01:49.68ID:1777RigF 基本的なことと思いますが、教えてください。
Public Function FuncSyohizei(ByVal kingaku As Double) As Double
FuncSyohizei = kingaku * 1.05
End Function
これを、イミディエイトウインドウから実行する場合
?FuncSyohizei(100.0)
・・・型が一致しません。ちなみに、?FuncSyohizei(100)でも、同じ。
?FuncSyohizei 100
→ 100 ?FuncSyohizeiは、文字列とみなされ、無視された?。
ただしく、100と引数を渡したら、105と返ってくるようにするには
イミディエイトウインドウに、どう入力すればいいんでしょうか。
Public Function FuncSyohizei(ByVal kingaku As Double) As Double
FuncSyohizei = kingaku * 1.05
End Function
これを、イミディエイトウインドウから実行する場合
?FuncSyohizei(100.0)
・・・型が一致しません。ちなみに、?FuncSyohizei(100)でも、同じ。
?FuncSyohizei 100
→ 100 ?FuncSyohizeiは、文字列とみなされ、無視された?。
ただしく、100と引数を渡したら、105と返ってくるようにするには
イミディエイトウインドウに、どう入力すればいいんでしょうか。
225デフォルトの名無しさん
2014/07/27(日) 16:34:57.58ID:fFsyojt4 ? @FuncSyohizei(100.0)
226224
2014/07/27(日) 18:14:36.50ID:02SmaVb3 いろいろやってみて、解決しました。
フォームモジュールに、これを作ったのがいけなかったようです。
標準モジュールにコピペして、?FuncSyohizei(100)したら
105が出ました。
フォームモジュールに、これを作ったのがいけなかったようです。
標準モジュールにコピペして、?FuncSyohizei(100)したら
105が出ました。
227デフォルトの名無しさん
2014/07/28(月) 00:30:37.26ID:ZjuZ26GB Date, Now って
Functionじゃなく
Propertyなのな
Functionじゃなく
Propertyなのな
228デフォルトの名無しさん
2014/07/28(月) 02:29:49.00ID:4Zda3n2L229デフォルトの名無しさん
2014/07/28(月) 03:01:52.49ID:ZjuZ26GB >>228
オブジェクトブラウザ見てごらん
オブジェクトブラウザ見てごらん
230デフォルトの名無しさん
2014/07/28(月) 13:08:38.66ID:hu7LkKIJ VBAの標準関数って、VBA組み込みオブジェクトのメンバして実装されてるのか
しかし、メソッドとプロパティの使い分けの基準は謎だな
しかし、メソッドとプロパティの使い分けの基準は謎だな
231デフォルトの名無しさん
2014/08/20(水) 13:35:49.89ID:qA3YOzZv Access2003でwebスクレイピングしてます。
Dim objHTML As MSHTML.HTMLDocument
Dim objDoc As MSHTML.HTMLDocument
If (objHTML Is Nothing) Then Set objHTML = New MSHTML.HTMLDocument
Set objDoc = objHTML.createDocumentFromUrl(strURL, vbNullString)
ってな感じでタグでデータを拾いたいのと、速度を重視してMSHTMLを使ってやってます。
が、createDocumentFromUrlのところでクッキーのセキュリティ警告が出てしまいます。
http://imgur.com/41wmxYi
回避する方法はないでしょうか?
インターネットオプションをいろいろといじってみたけど、お手上げ状態です。
URLを変更して呼び出すたびに毎回出てくるので、処理を開始して放置しておくことができません。
Dim objHTML As MSHTML.HTMLDocument
Dim objDoc As MSHTML.HTMLDocument
If (objHTML Is Nothing) Then Set objHTML = New MSHTML.HTMLDocument
Set objDoc = objHTML.createDocumentFromUrl(strURL, vbNullString)
ってな感じでタグでデータを拾いたいのと、速度を重視してMSHTMLを使ってやってます。
が、createDocumentFromUrlのところでクッキーのセキュリティ警告が出てしまいます。
http://imgur.com/41wmxYi
回避する方法はないでしょうか?
インターネットオプションをいろいろといじってみたけど、お手上げ状態です。
URLを変更して呼び出すたびに毎回出てくるので、処理を開始して放置しておくことができません。
232デフォルトの名無しさん
2014/08/20(水) 18:22:09.72ID:aSpRdTpy233デフォルトの名無しさん
2014/08/21(木) 00:46:10.94ID:Ue/CPgyd234デフォルトの名無しさん
2014/08/21(木) 02:13:22.51ID:nSwAzUL+235デフォルトの名無しさん
2014/08/21(木) 02:28:53.95ID:Ue/CPgyd >>233
win7(32bit),ie11です。
今度クッキーとか履歴とか全部クリアして試します。
メッセージでくぐってもie5がってMSのサイトしかでないんですよね。
ちなみにat Homeの不動産情報サイトです。
win7(32bit),ie11です。
今度クッキーとか履歴とか全部クリアして試します。
メッセージでくぐってもie5がってMSのサイトしかでないんですよね。
ちなみにat Homeの不動産情報サイトです。
236デフォルトの名無しさん
2014/08/21(木) 02:29:20.42ID:Ue/CPgyd237デフォルトの名無しさん
2014/08/21(木) 02:32:53.11ID:SlcBJ8S5 >>231
ちょっと状況違うみたいだけど
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsMSHTML.html
にある
objHTML.DesignMode = "on"
試してみた?
ちょっと状況違うみたいだけど
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsMSHTML.html
にある
objHTML.DesignMode = "on"
試してみた?
238デフォルトの名無しさん
2014/08/21(木) 16:24:32.22ID:Ue/CPgyd239デフォルトの名無しさん
2014/10/23(木) 15:05:01.01ID:RjBQcz8M OLEオブジェクトにゼロデイ脆弱性、Microsoftが暫定対策プログラムを公開
http://www.forest.impress.co.jp/docs/news/20141022_672480.html
http://www.forest.impress.co.jp/docs/news/20141022_672480.html
240デフォルトの名無しさん
2014/12/23(火) 20:32:46.30ID:n+XpzPMA 質問です。WIN7、ACCESS2010
初歩的な質問なのですが、
文字列を扱う変数では何文字の格納が可能でしょうか?
初歩的な質問なのですが、
文字列を扱う変数では何文字の格納が可能でしょうか?
241デフォルトの名無しさん
2014/12/23(火) 21:36:03.42ID:M59ZuSy9 vbaでgoogle driveにレポートをアップするやり方どこかに良いサンプルないかな。。。google driveのクライアントソフト入ってない場合でも使いたいんで。。。。
242デフォルトの名無しさん
2014/12/23(火) 21:50:29.64ID:W51mY81m >>240
2Gまでだったと思うけどヘルプ確認してくれ
2Gまでだったと思うけどヘルプ確認してくれ
243デフォルトの名無しさん
2014/12/23(火) 22:33:08.77ID:n+XpzPMA244デフォルトの名無しさん
2014/12/24(水) 03:21:35.84ID:Yxp0O6RL245デフォルトの名無しさん
2014/12/24(水) 22:57:10.21ID:vBpiiQ3c246デフォルトの名無しさん
2014/12/25(木) 03:42:32.22ID:c/bUBZQc >>245
可能か不可能かっていうならもちろん可能だけど
やり方は色々あるぞ
純粋にVBAだけならPrint#だけど、あんまりこれ使ってるの見た事ないなw
ACCES的に考えると、1回テーブルに格納してテキスト書き出しじゃないかな
可能か不可能かっていうならもちろん可能だけど
やり方は色々あるぞ
純粋にVBAだけならPrint#だけど、あんまりこれ使ってるの見た事ないなw
ACCES的に考えると、1回テーブルに格納してテキスト書き出しじゃないかな
247デフォルトの名無しさん
2014/12/25(木) 19:12:54.77ID:wTh15/U7 大量のAccessファイル含め移動するのですが、リンクテーブルのリンク先の一括張り替え機能を実装したいのですが、ご教示いただけないでしょうか?
248デフォルトの名無しさん
2014/12/25(木) 19:40:21.24ID:/AazF+Ck ADOXDB
249デフォルトの名無しさん
2014/12/25(木) 20:14:11.26ID:GnPnKi4m >>246
ありがとうございます。
最終的に長めの一文をテキストファイルに出力するためだけに
ACCESSでテーブル作成したりクエリ組んだりしてるのです。
通常の使い方だとテーブルやクエリをエクスポートでいいんでしょうが
なんせ一文のみなので、printというのを試してみます。
ありがとうございます。
最終的に長めの一文をテキストファイルに出力するためだけに
ACCESSでテーブル作成したりクエリ組んだりしてるのです。
通常の使い方だとテーブルやクエリをエクスポートでいいんでしょうが
なんせ一文のみなので、printというのを試してみます。
250デフォルトの名無しさん
2014/12/25(木) 22:18:03.24ID:c/bUBZQc >>247
DAOで
CurrentDb().TableDefs("テーブル名").Connect 書き換えてから
CurrentDb().TableDefs("テーブル名").RefreshLink
DAOで
CurrentDb().TableDefs("テーブル名").Connect 書き換えてから
CurrentDb().TableDefs("テーブル名").RefreshLink
251デフォルトの名無しさん
2014/12/26(金) 09:32:55.94ID:4ShwS6Rf マルチだよ
252デフォルトの名無しさん
2014/12/27(土) 17:01:11.46ID:Mse9t11G >>244
レポートというかAccessから出力された成果物をGoogleDriveのクライアントソフトが
入っていない場合でもGoogleDriveにアップロードしたいということだったのでした。
そんなことをやる人もあまりいないみたいですね。
Pythonあたりでフィルをアップするプログラムを作ってアクセスから
ファイルパスを引数に持たせて実行させるようなイメージで考えてみようかとお思います。
もっとかんたんにできるぉ。。っていう神がいれば教えてたも。。。
レポートというかAccessから出力された成果物をGoogleDriveのクライアントソフトが
入っていない場合でもGoogleDriveにアップロードしたいということだったのでした。
そんなことをやる人もあまりいないみたいですね。
Pythonあたりでフィルをアップするプログラムを作ってアクセスから
ファイルパスを引数に持たせて実行させるようなイメージで考えてみようかとお思います。
もっとかんたんにできるぉ。。っていう神がいれば教えてたも。。。
253デフォルトの名無しさん
2014/12/27(土) 18:42:52.92ID:xcx8bYiC >>252
VBAはHTTP通信サポートしてないから、どっちにしろVBAだけではできんが
俺ならC#(かVB.NET)でDLL作ってCOM公開だな
C#のライブラリあるっぽいから、ほぼそれそのままCOM公開する形で行ける気がする
探せば誰かすでに作ってるかもしれんが
VBAはHTTP通信サポートしてないから、どっちにしろVBAだけではできんが
俺ならC#(かVB.NET)でDLL作ってCOM公開だな
C#のライブラリあるっぽいから、ほぼそれそのままCOM公開する形で行ける気がする
探せば誰かすでに作ってるかもしれんが
254デフォルトの名無しさん
2014/12/27(土) 18:46:25.06ID:MwQYLNUR >>252
pypiで検索してみ
pypiで検索してみ
255デフォルトの名無しさん
2014/12/27(土) 21:43:55.93ID:N3QWsaPU256デフォルトの名無しさん
2014/12/28(日) 01:48:08.62ID:hWEKpKUx 馬鹿には無理
257デフォルトの名無しさん
2014/12/29(月) 18:29:45.70ID:EuG97dxJ258デフォルトの名無しさん
2015/01/06(火) 15:02:29.70ID:L0NjGint AC2000くらいぶりに2013で作るんだが、変わりすぎてて困るなこれ
259デフォルトの名無しさん
2015/01/07(水) 12:14:43.42ID:HwRBQ0K9 お前の頭が老化してるんだよ
260デフォルトの名無しさん
2015/01/08(木) 11:57:49.05ID:3EyWpOD1 1)のデータの県名を元に、2)のように並べたいのですが、アクセスでやる方法はありますか?
1)
千葉 成田 空港
埼玉 秩父 蕎麦
埼玉 川越 イモ
栃木 日光 華厳
千葉 浦安 ネズミ
埼玉 秩父 三峯
栃木 日光 東照宮
栃木 宇都宮 餃子
千葉 館山 菜の花
↓
2)
千葉 成田 空港 館山 菜の花
埼玉 秩父 蕎麦 川越 イモ 秩父 三峯
栃木 日光 華厳 日光 東照宮 宇都宮 餃子
1)
千葉 成田 空港
埼玉 秩父 蕎麦
埼玉 川越 イモ
栃木 日光 華厳
千葉 浦安 ネズミ
埼玉 秩父 三峯
栃木 日光 東照宮
栃木 宇都宮 餃子
千葉 館山 菜の花
↓
2)
千葉 成田 空港 館山 菜の花
埼玉 秩父 蕎麦 川越 イモ 秩父 三峯
栃木 日光 華厳 日光 東照宮 宇都宮 餃子
261デフォルトの名無しさん
2015/01/08(木) 12:16:44.21ID:qIfkunGX 浦安とネズミーランドはどこに入れば良い?
262デフォルトの名無しさん
2015/01/08(木) 13:16:48.72ID:3EyWpOD1 すいません。書き直します。
1)のデータの県名を元に、2)のように並べたいのですが、アクセスでやる方法はありますか?
1)
千葉 成田 空港
埼玉 秩父 蕎麦
埼玉 川越 イモ
栃木 日光 華厳
千葉 浦安 ネズミ
埼玉 秩父 三峯
栃木 日光 東照宮
栃木 宇都宮 餃子
千葉 館山 菜の花
↓
2)
千葉 成田 空港 館山 菜の花 浦安 ネズミ
埼玉 秩父 蕎麦 川越 イモ 秩父 三峯
栃木 日光 華厳 日光 東照宮 宇都宮 餃子
1)のデータの県名を元に、2)のように並べたいのですが、アクセスでやる方法はありますか?
1)
千葉 成田 空港
埼玉 秩父 蕎麦
埼玉 川越 イモ
栃木 日光 華厳
千葉 浦安 ネズミ
埼玉 秩父 三峯
栃木 日光 東照宮
栃木 宇都宮 餃子
千葉 館山 菜の花
↓
2)
千葉 成田 空港 館山 菜の花 浦安 ネズミ
埼玉 秩父 蕎麦 川越 イモ 秩父 三峯
栃木 日光 華厳 日光 東照宮 宇都宮 餃子
263デフォルトの名無しさん
2015/01/08(木) 13:22:02.26ID:qIfkunGX 浦安とネズミーランドだけ順番入れ替える基準は?
264デフォルトの名無しさん
2015/01/08(木) 16:12:11.95ID:qIfkunGX265デフォルトの名無しさん
2015/01/09(金) 08:12:06.75ID:rJhs2R4+ >>264
Runtime Errorがでました
Runtime Errorがでました
266デフォルトの名無しさん
2015/01/09(金) 12:46:37.92ID:Azg0g72t >>262
横展開の数が固定なら
https://social.msdn.microsoft.com/Forums/ja-JP/cf79c817-f15e-4375-8d9b-95990b2d00de/accesssql?forum=vbajp
増減するならVBAでワークテーブルに入れていくしかないと思う
横展開の数が固定なら
https://social.msdn.microsoft.com/Forums/ja-JP/cf79c817-f15e-4375-8d9b-95990b2d00de/accesssql?forum=vbajp
増減するならVBAでワークテーブルに入れていくしかないと思う
267デフォルトの名無しさん
2015/02/19(木) 08:17:57.69ID:CSqQB465 質問です。
数万レコード程度のログファイルの集計(抽出)をしたいです。
抽出条件は、レコードに担当者と時刻が入っていて、
その時刻の+1分以上かつ+5分以下で、同じ担当者の物です。
最終的には、条件にあてはまるレコードの1つ目と2つ目以降という感じで並べたいです。
今はEXCELのCOUNTIFS関数で半分手作業でやってますが、
かなり手間なのでできればAccessVBAでやりたいです。
よろしくお願いします。
数万レコード程度のログファイルの集計(抽出)をしたいです。
抽出条件は、レコードに担当者と時刻が入っていて、
その時刻の+1分以上かつ+5分以下で、同じ担当者の物です。
最終的には、条件にあてはまるレコードの1つ目と2つ目以降という感じで並べたいです。
今はEXCELのCOUNTIFS関数で半分手作業でやってますが、
かなり手間なのでできればAccessVBAでやりたいです。
よろしくお願いします。
268デフォルトの名無しさん
2015/02/19(木) 10:34:22.43ID:IO29hpKb したいことは判りました。
次のかたどうぞ。
次のかたどうぞ。
269デフォルトの名無しさん
2015/02/19(木) 16:00:09.30ID:1peKWp+p わからないなら黙ってろよアホか
で、vbaからcountifを呼び出せばいいんじゃねえの?
思いついただけで試してないが
で、vbaからcountifを呼び出せばいいんじゃねえの?
思いついただけで試してないが
270デフォルトの名無しさん
2015/02/19(木) 16:34:11.57ID:4dFHTBvU >>267
VBAは必要ないでしょ。なにかその後バッチ処理をしてるっていう
なら別だが。
普通に該当のテーブルを元にクエリつくって、パラメータクエリを
作る。フォームを用意して、入力させてその値をパラメータとして
クエリの条件式に入れる。
1分以上5分以下という条件をbetween andで書いて2つパラメータ
を時刻のカラムに入れる。これで抽出は完了。SQLでやってもいい
んだがそこまでは必要ないでしょ。手軽にできるし。
VBAは必要ないでしょ。なにかその後バッチ処理をしてるっていう
なら別だが。
普通に該当のテーブルを元にクエリつくって、パラメータクエリを
作る。フォームを用意して、入力させてその値をパラメータとして
クエリの条件式に入れる。
1分以上5分以下という条件をbetween andで書いて2つパラメータ
を時刻のカラムに入れる。これで抽出は完了。SQLでやってもいい
んだがそこまでは必要ないでしょ。手軽にできるし。
271デフォルトの名無しさん
2015/02/25(水) 19:46:25.88ID:u8BX93H2 定時で帰ってるのがばれるじゃないか
272デフォルトの名無しさん
2015/02/27(金) 10:17:16.72ID:ILfHzu6L >>271
密度が違いますと言い張れば大丈夫。
密度が違いますと言い張れば大丈夫。
273デフォルトの名無しさん
2015/04/11(土) 08:59:32.35ID:5EmI+Hzg Excelファイルで(表現上CSVで表現してますが、XLSXファイルの1つのシート上のデータだと思ってください。)
999,999,AAA,999・・・・・・
999,999,BBB,999・・・・・・
999,C ,999,999・・・・・・
999,999,DDD,999・・・・・・
という4件のデータがあるとします。
これを、SELECT * FROM のクエリをDao.Recordsetで読み込みたいのですが、
Fileds(1)のところのタイプは数値型。
ここで、3行目のデータを見に行くと、フィールドの型が数値型なのに「C」が入っているためRS.Fields(2).Valueを参照しようとすると異常終了してしまいます。
全部のフィールドを強制的に文字列型で見る方法はないのでしょうか?
999,999,AAA,999・・・・・・
999,999,BBB,999・・・・・・
999,C ,999,999・・・・・・
999,999,DDD,999・・・・・・
という4件のデータがあるとします。
これを、SELECT * FROM のクエリをDao.Recordsetで読み込みたいのですが、
Fileds(1)のところのタイプは数値型。
ここで、3行目のデータを見に行くと、フィールドの型が数値型なのに「C」が入っているためRS.Fields(2).Valueを参照しようとすると異常終了してしまいます。
全部のフィールドを強制的に文字列型で見る方法はないのでしょうか?
274デフォルトの名無しさん
2015/04/11(土) 09:00:28.88ID:5EmI+Hzg RS.Fields(2).Value
を
RS.Fields(1).Value
に訂正。m(_ _)m
を
RS.Fields(1).Value
に訂正。m(_ _)m
275デフォルトの名無しさん
2015/04/11(土) 18:29:40.40ID:hFjl3X66 >>273
落ちる所のコードが無いから分からないけど
dim aaa as long
aaa=RS.Fields(1).Value
みたいな使い方しているなら
dim aaa as long
dim bbb as string
bbb=RS.Fields(1).Value
bbbを数値判定してから本来のaaaに取得
判定方法はIsNumericやCIntやCLngなど
落ちる所のコードが無いから分からないけど
dim aaa as long
aaa=RS.Fields(1).Value
みたいな使い方しているなら
dim aaa as long
dim bbb as string
bbb=RS.Fields(1).Value
bbbを数値判定してから本来のaaaに取得
判定方法はIsNumericやCIntやCLngなど
276デフォルトの名無しさん
2015/04/13(月) 17:40:35.62ID:gbfuHaFd Access2013です。
いろいろと作っているうちに突然コントロールソースに持っているユーザー定義関数が働かなくなり、#NAMEのエラーが出る様になりました。
ファイルが壊れたのでしょうか?
いろいろと作っているうちに突然コントロールソースに持っているユーザー定義関数が働かなくなり、#NAMEのエラーが出る様になりました。
ファイルが壊れたのでしょうか?
277デフォルトの名無しさん
2015/04/13(月) 18:03:17.07ID:gbfuHaFd278デフォルトの名無しさん
2015/04/14(火) 07:53:37.48ID:0HPBZIqn >>277
そもそも関数名に日本語使うそのセンスを疑う
そもそも関数名に日本語使うそのセンスを疑う
279デフォルトの名無しさん
2015/04/14(火) 15:41:26.89ID:b8Z+Xie9 だってイベントプロシージャは日本語名で動くじゃん
280デフォルトの名無しさん
2015/04/14(火) 19:08:51.74ID:hqkBvwrA 漢字カタカナを関数名にグイグイ使ってました。まあ今日も明日も使っちゃうんですが。
281デフォルトの名無しさん
2015/04/15(水) 22:25:26.57ID:15xIuB57 IF文についてなのですが、
IIf(A = 0 Or B = 0 Or C = 0 And D = 0 ...
という書き方の場合、「Aが0」もしくは「Bが0」もしくは「Cが0、かつDも0」のいずれかの場合、
という条件判定になるという考え方で良いでしょうか?
IIf(A = 0 Or B = 0 Or C = 0 And D = 0 ...
という書き方の場合、「Aが0」もしくは「Bが0」もしくは「Cが0、かつDも0」のいずれかの場合、
という条件判定になるという考え方で良いでしょうか?
282デフォルトの名無しさん
2015/04/16(木) 08:12:50.91ID:gzgbYtwZ >>281
一緒といえば一緒ですがIF?IIF?どちらでしょう?
> という書き方の場合、「Aが0」もしくは「Bが0」もしくは「Cが0、かつDも0」のいずれかの場合、
> という条件判定になるという考え方で良いでしょうか?
そうですね
ハッキリさせたい時には()でくくると分かり易くなりますよ
こんな風に
IIf((A = 0 Or B = 0) Or (C = 0 And D = 0), "true", "false")
IFならモジュールにテスト用の関数作って確認できますし
IIFならもっと簡単にクエリー等でテスト出来ますよ
まずは試してみる事をオススメします
一緒といえば一緒ですがIF?IIF?どちらでしょう?
> という書き方の場合、「Aが0」もしくは「Bが0」もしくは「Cが0、かつDも0」のいずれかの場合、
> という条件判定になるという考え方で良いでしょうか?
そうですね
ハッキリさせたい時には()でくくると分かり易くなりますよ
こんな風に
IIf((A = 0 Or B = 0) Or (C = 0 And D = 0), "true", "false")
IFならモジュールにテスト用の関数作って確認できますし
IIFならもっと簡単にクエリー等でテスト出来ますよ
まずは試してみる事をオススメします
283デフォルトの名無しさん
2015/04/16(木) 13:45:46.84ID:OCYKBdEo >>282
ありがとうございます、安心しました
ありがとうございます、安心しました
284デフォルトの名無しさん
2015/04/18(土) 01:50:57.01ID:pucpWveX ExcelVBAをほんの少しいじった程度ですが、同じことがAccessVBAでもできますか?
たぶんできたとして、データアクセスが目的ならExcelよりAccessのほうが早いのかな。
たぶんできたとして、データアクセスが目的ならExcelよりAccessのほうが早いのかな。
285デフォルトの名無しさん
2015/04/18(土) 03:55:58.31ID:j/wjXDDU WSH(VBScript, JScript), PowerShell からでも、
呼び出せるよ
Accessはデータベースだから、
Excelよりもデータの整合性は、より安全で、
何々明細とかを扱う、本格的な業務に適している
呼び出せるよ
Accessはデータベースだから、
Excelよりもデータの整合性は、より安全で、
何々明細とかを扱う、本格的な業務に適している
286デフォルトの名無しさん
2015/04/18(土) 07:06:32.83ID:elh8iJrV >>284
Excel にデータエクスポートして開いてピボット集計して保管してzipにしてメール添付して送信、とかExcelの外から出来る。
Excel にデータエクスポートして開いてピボット集計して保管してzipにしてメール添付して送信、とかExcelの外から出来る。
287デフォルトの名無しさん
2015/04/18(土) 09:55:54.98ID:QuJhi9bL エクセルの65535行制限って解けたんだっけ?
288デフォルトの名無しさん
2015/04/18(土) 18:09:00.24ID:05gN+8sT xlsxファイルからDAO.RecordSetでデータを取り込んでいます
dim A
Do Until Rs.EOF=True
For i=1 to 10
A=Rs.Fields(i).Value
InsertRS.Addnew
InsertRS.Fields(i).Value=Rs.Filds(i).Value
Next
Rs.MoveNext
Loop
のようにしてエクセルデータからデータベースに保存してます。
で、
A=Rs.Filds(i).Value
は無意味なコードなのですが、
これがないと保存がされません。
ワンクッション?が必要なようなんです。
これ、原因や同じような症状でた人いますか?
dim A
Do Until Rs.EOF=True
For i=1 to 10
A=Rs.Fields(i).Value
InsertRS.Addnew
InsertRS.Fields(i).Value=Rs.Filds(i).Value
Next
Rs.MoveNext
Loop
のようにしてエクセルデータからデータベースに保存してます。
で、
A=Rs.Filds(i).Value
は無意味なコードなのですが、
これがないと保存がされません。
ワンクッション?が必要なようなんです。
これ、原因や同じような症状でた人いますか?
289デフォルトの名無しさん
2015/04/18(土) 19:59:14.52ID:C1NhVGiv それ以前にAddnewしてる位置がおかしい気がするんだが
290デフォルトの名無しさん
2015/04/18(土) 21:20:04.66ID:05gN+8sT 書き間違えました。
実際は、Forのまえにaddnewしてnextのあとにupdateしてます。
実際は、Forのまえにaddnewしてnextのあとにupdateしてます。
291デフォルトの名無しさん
2015/04/19(日) 02:01:53.14ID:WMQbPkw9 書き間違いとか実際のコードじゃないもの出されてもなぁ
お前の勘違いの可能性が圧倒的に高いと思うぞ
お前の勘違いの可能性が圧倒的に高いと思うぞ
292デフォルトの名無しさん
2015/04/19(日) 07:19:00.86ID:8d6tresr 事実、
ワンクッションのある無しで発生するんです。
ワンクッションのある無しで発生するんです。
293デフォルトの名無しさん
2015/04/19(日) 09:54:27.68ID:S72BOy6b フィールドが100個くらいあるエクセルデータを同じように取り込んだときに経験したことある
ケド、、、、原因調べないでおわっちゃたなwそーいえばww
原因を探るためにDebug.Print入れたら登録がされるようになって、原因解明より先に仕事・・・・となって、そーいえばそのままww
ケド、、、、原因調べないでおわっちゃたなwそーいえばww
原因を探るためにDebug.Print入れたら登録がされるようになって、原因解明より先に仕事・・・・となって、そーいえばそのままww
294デフォルトの名無しさん
2015/04/20(月) 08:09:04.77ID:ZV6mzr+5295デフォルトの名無しさん
2015/05/02(土) 06:47:20.55ID:cQx6YORh 中文(簡体)文字のファイル名をダイアログで取得して、コピーしたり開いたりしたいんですが、"見つかりません"と言うメッセージに。
中文文字の入ったファイル名やフォルダー名を取り扱う方法かヒント頂けないですか。
中文文字の入ったファイル名やフォルダー名を取り扱う方法かヒント頂けないですか。
296デフォルトの名無しさん
2015/05/14(木) 12:50:18.83ID:No/KpZZc 二つ教えてください。
1コンボボックスコントロールの▼が反応しない時がある
2リストボックスコントロールAからデータを取得するとき
A.BoundColumn=1
変数=A.ItemData(A.ListIndex)
A.BoundColumn=2
変数=A.ItemData(A.ListIndex)
A.BoundColumn=3
変数=A.ItemData(A.ListIndex)
A.BoundColumn=4
と一つの関数内で取得する列を変更してデータを取得しようとしても、データが取得できる場合と取得できない場合が発生するのはなぜでしょうか?
1コンボボックスコントロールの▼が反応しない時がある
2リストボックスコントロールAからデータを取得するとき
A.BoundColumn=1
変数=A.ItemData(A.ListIndex)
A.BoundColumn=2
変数=A.ItemData(A.ListIndex)
A.BoundColumn=3
変数=A.ItemData(A.ListIndex)
A.BoundColumn=4
と一つの関数内で取得する列を変更してデータを取得しようとしても、データが取得できる場合と取得できない場合が発生するのはなぜでしょうか?
297デフォルトの名無しさん
2015/05/16(土) 10:31:05.05ID:s10/F9Sk Accessって新しくなればなるほど、不安定化してない?
なんとなくだけど
なんとなくだけど
298デフォルトの名無しさん
2015/05/16(土) 12:20:26.27ID:mEQOWf9/299デフォルトの名無しさん
2015/05/16(土) 14:09:51.76ID:/YqkcKmb >>297
ど安定だと思ってた。難しい事しないからかもだけど。
ど安定だと思ってた。難しい事しないからかもだけど。
300デフォルトの名無しさん
2015/05/16(土) 17:59:47.30ID:s10/F9Sk /decompileオプションをつけてファイルを開くなんて、昔はなかったのになぁ・・・。
301デフォルトの名無しさん
2015/05/16(土) 22:55:57.30ID:xhmYU3Qu302デフォルトの名無しさん
2015/05/17(日) 10:45:41.40ID:vGSHuJcU >>301
97くらいからはあったはず。
でも/decompileを使うようになったのは2003以降かなぁ?
むかしはmdbファイル丸ごと見事に壊れたから/decompileすら登場の出番が無く
今はVBAを入れるとスグ壊れるから/decompileが効力を発する機会が増えた
うーん・・・改善してるのかもなw
ただ開発をやっている人から見るとVBAをいじってる最中の異常終了が増えた
感じがするから不安定化しているように見えるのかも
97くらいからはあったはず。
でも/decompileを使うようになったのは2003以降かなぁ?
むかしはmdbファイル丸ごと見事に壊れたから/decompileすら登場の出番が無く
今はVBAを入れるとスグ壊れるから/decompileが効力を発する機会が増えた
うーん・・・改善してるのかもなw
ただ開発をやっている人から見るとVBAをいじってる最中の異常終了が増えた
感じがするから不安定化しているように見えるのかも
303デフォルトの名無しさん
2015/05/22(金) 21:24:51.38ID:zmoBF1Q0 [Forms]![コントロール名]......
のように使う
!
と
フォーム.プロパティ
の
「!」と「.」
の違いってなんなんでしょうか?
のように使う
!
と
フォーム.プロパティ
の
「!」と「.」
の違いってなんなんでしょうか?
304デフォルトの名無しさん
2015/05/22(金) 21:51:36.82ID:yor6OqJo /decompile 知らなかった。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
