Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


60 / 500 ページ ←次へ | 前へ→

【12112】Re:DTpickerについて
回答  hatena  - 12/1/8(日) 9:12 -

引用なし
パスワード
   >タブコントロール1ページ目にDTpickerを張り付けて
>Me.DTpicker1.Day=Day(Date-1)
>とすると、前日を指定できるのですが、
>タブの2ページ目に張り付け、同じようにしても
>エラーとなります
>なにか、2ページ目を指定する必要が
>あるのでしょうか?

DTpicker をタブコントロール上に配置しするとそのような不具合があるみたいです。

私の場合も同じ症状に遭遇したことがあります。

そのとき、タブコントロール上に配置するのはあきらめて、詳細セクション上に配置したあと、
タブコントロール上に移動させて(タブコントロールの上にあるように見える)、
タブコントロールの変更時イベントで、表示/表示を切り替える、
というような対応をとりました。
・ツリー全体表示

【12111】DTpickerについて
質問  へたれ  - 12/1/7(土) 14:21 -

引用なし
パスワード
   タブコントロール1ページ目にDTpickerを張り付けて
Me.DTpicker1.Day=Day(Date-1)
とすると、前日を指定できるのですが、
タブの2ページ目に張り付け、同じようにしても
エラーとなります
なにか、2ページ目を指定する必要が
あるのでしょうか?
・ツリー全体表示

【12110】フォームのオートフォーマットをvbaで。
質問  チャロ  - 11/12/28(水) 13:17 -

引用なし
パスワード
   はじめまして。

ACCESS2007で、フォームのオートフォーマットの設定をVBAでおこないたいのですが、
どのようにすればいいのでしょうか。
オートフォーマットのきりかえと、すべてのフォームについて同じフォーマットを適用したいためです。

よろしくおねがいします。
・ツリー全体表示

【12109】Re:条件付き書式
回答    - 11/12/2(金) 16:27 -

引用なし
パスワード
   雅です。

>フォームのテキストBOX1に「3」が入るとテキストBOX2に「進め」と入るように条件付き書式設定したいのですが、出来ますでしょうか。

そんなことができたらもうすでに「書式」とは呼べませんなw
素直にコードかマクロを設定しましょう
・ツリー全体表示

【12108】条件付き書式
質問  そよ風  - 11/11/16(水) 14:39 -

引用なし
パスワード
   フォームのテキストBOX1に「3」が入るとテキストBOX2に「進め」と入るように条件付き書式設定したいのですが、出来ますでしょうか。
・ツリー全体表示

【12107】Re:ACCESS/VBA
回答  kou  - 11/11/7(月) 8:37 -

引用なし
パスワード
   ▼OSAMU さん:

>コンボAで選択した値がtrueになる項目が2つの場合は,value="値1"and"値2"では無理でした。初心者ですみません。困っているので教えてください

Me.コンボA.enabled=(Me.○○.value="値1" OR Me.○○.value="値2")
ではどうですか?
・ツリー全体表示

【12106】Re:IE9を操作してダイアログを出さずにダ...
質問  vbasql  - 11/11/5(土) 21:09 -

引用なし
パスワード
   補足です。
現在のソースは以下です。

Private Sub test_Click()
Dim objIE As Object
Dim objIE2 As Object

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "http://xxx/login/"
objIE.Visible = False

Do While objIE.Busy = True
DoEvents
Loop

'テストボックスへ入力
objIE.Document.all("ID").Value = "ID"
objIE.Document.all("passWord").Value = "password"
'ボタンクリック
objIE.Document.all("login").Click

Do While objIE.Busy = True
DoEvents
Loop

Set objIE2 = CreateObject("InternetExplorer.Application")
objIE2.Navigate "http://xxx/dllist

objIE2.Visible = True
objIE2.FullScreen = True

Do While objIE2.Busy = True
DoEvents
Loop

objIE2.Document.all("filename").Value = "testfile"
objIE2.Document.all("download").Click

Sleep (2000) '2秒待つ

SendKeys "%s"

objIE2.Quit

Set objIE = Nothing
Set objIE2 = Nothing

End Sub
・ツリー全体表示

【12105】IE9を操作してダイアログを出さずにダウ...
質問  vbasql  - 11/11/5(土) 21:07 -

引用なし
パスワード
   Access2010VBAでIE9を操作して、Login→ダウンロードファイル名をテキストボックスに入力→ダウンロードボタンをクリック(この時にcsvファイルが生成されファイル名はランダム)してダウンロード(ダウンロードフォルダに保存)というプログラムを組みたいのですが、
現在は、ダウンロードボタンをクリックした後で、通知バーに表示される"保存"ボタンをSendKeys "%s"でクリックすることで、なんとか実現はできたのですが、SendKeysを送るためにIEを表示し、かつフォーカスがあたっていないと保存はされません。
IE9を非表示のままで保存をしたいのですが、
非表示の状態で通知バーを操作することはできないでしょうか?

以上よろしくお願い致します。
・ツリー全体表示

【12104】ACCESS/VBA
質問  OSAMU E-MAIL  - 11/11/4(金) 23:28 -

引用なし
パスワード
   accessで、フォーム上にコンボボックスを二つ作りました。仮にA、Bとします。Aのコンボボックスから値を選択し、その結果によってコンボBを淡色表示となり、イベントに応答しなくなるようにしたいです。A

の値がtrueになる条件が二つある場合の記述はどうしたらよいか詳しい方教えててください。
private sub ○○_change()
on error resume next
Me.コンボA.enabled=Me.○○.value=このあとどうしたらよいかわかりません。
補足 因みに、コンボAの値がtrueになる条件が1つの場合は、
private sub ○○_change()
on error resume next
Me.コンボA.enabled=Me.○○.value="値1"で上手くいきました。

コンボAで選択した値がtrueになる項目が2つの場合は,value="値1"and"値2"では無理でした。初心者ですみません。困っているので教えてください
・ツリー全体表示

【12103】Re:実行時エラー2191
発言  まき  - 11/10/25(火) 11:19 -

引用なし
パスワード
   エラーが出たので、再度送信ボタンを押すと、二重投稿されてしまいました。
すみません。
・ツリー全体表示

【12102】Re:実行時エラー2191
質問  まき  - 11/10/25(火) 11:18 -

引用なし
パスワード
   こんにちは、よろしくお願いします
やっぱりだめでした。
どうしても実行時エラー2191が出てしまいます。

前回書いた理由で一旦直ったんですけど、又出るようになってしまいました。
相変わらず、終了やデバッグでレポートは作成されますが、印刷が出来ません。
原因と対処法をご教示願いますようよろしくお願いします。
・ツリー全体表示

【12101】Re:実行時エラー2191
質問  まき  - 11/10/25(火) 11:17 -

引用なし
パスワード
   こんにちは、よろしくお願いします
やっぱりだめでした。
どうしても実行時エラー2191が出てしまいます。

前回書いた理由で一旦直ったんですけど、又出るようになってしまいました。
相変わらず、終了やデバッグでレポートは作成されますが、印刷が出来ません。
原因と対処法をご教示願いますようよろしくお願いします。


>レポートAがあり、その中にサブレポートBがあります。
>このレポートを展開しようとすると、下記のようなエラーメッセージが出てきてしまいます。
>
>実行時エラー'2191':
>
>印刷プレビュー時または印刷を開始した後は、コントロールソースプロパティを設定できません。
>@OnOpenイベントが発生したときに、このプロパティを設定するようにしてください。@1@@1
>
>ですが、エラーは出るものの、終了というボタンを押すとちゃんとレポートは作成されます。
>
>実はレポートBは列見出し非固定のクロス集計クエリを基にしているため、Openイベントに下記コードを書いています。
>
>Private Sub Report_Open(Cancel As Integer)
>Dim db As DAO.Database
>Dim qd As DAO.TableDef
>Dim cnt As Integer
>Dim fld As DAO.Field
>Dim rs As DAO.Recordset
>
>
>Set db = CurrentDb()
>Set qd = db.TableDefs(Me.RecordSource)
>Set rs = qd.OpenRecordset
>
>For cnt = 2 To rs.Fields.Count - 1
>  Set fld = rs.Fields(cnt)
>  Me("Field" & cnt).ControlSource = fld.Name ・・・・※
>
>Next
>
>End Sub
>
>エラー時にデバッグをかけると、※のところで反転します
・ツリー全体表示

【12100】:テーブルの日付によってフォームの操作
質問  バッセン  - 11/10/17(月) 9:26 -

引用なし
パスワード
   無事できたのですが、同じパソコンで違うデーターベース(内容はほぼ同じ)で試したところ「コンパイルエラー。ユーザ定義型は定義されていません」とエラーメッセージがでてしまいます。
よろしくお願い致します。
・ツリー全体表示

【12099】Re:EXCELへの出力・編集
質問  AKG  - 11/10/13(木) 11:10 -

引用なし
パスワード
   ▼ちょっち さん:
>▼AKG さん、よろずや さん
>
>横からすみません。
>通りすがりでこのスレを見てしました。
>
>>1番上のこの行でした
>>xlSheets("strSheetName").Select
>
>↑のエラーについてのみ回答させて頂きます。。。
>
>SETしているのは「xlSheet」に対してなので、
>末尾に「s」をつけている為にエラーが出ています。
>
>このようにして頂ければエラーは出なくなるはずです。
>「xlSheet("strSheetName").Select」
>
>
>そしてもう一つ、
>「"」でstrSheetNameを囲んでいますが、こちらは変数
>になっていますので、「"」を外さないと、その文字の
>シートがないのでエラーになります。
>「xlSheet(strSheetName).Select」
>
>
>以上、お邪魔いたしました

ちょっちさん、ありがとうございます。
初歩的なミスも重ねていました、お恥ずかしいかぎりです。

ご指摘いただいた部分を修正してみましたが、今度は

xlSheet(strSheetName).Select

の部分で

「オブジェクトはこのメソッドまたはプロパティをサポートしていません」
「オブジェクトが必要です」

の表示がでてしまいます。いろいろ試してみたのですが、これはそもそもこの書き方じゃダメということなのでしょうか?

試しに上記部分消してみると編集の処理はされました。(シートが指定できていないのでアクティブなシートのみにですが・・・)

なかなか1からしっかり勉強する間もなく、こういう業務に取り組んでいるので組み方、知識が中途半端で申し訳ありません。

また、アドバイスお願いいたします。
・ツリー全体表示

【12098】Re:2つのテーブルの照合
回答  kou  - 11/10/13(木) 9:20 -

引用なし
パスワード
   横から失礼します。

>件数が大量の場合の処理の仕方教えてください

ちょっと聞きたいのですが、「件数」とは、データ数のことでしょうか?それともフィールド数?
データ数ならVBAでやると結構な時間がかかりますね。トランザクション必須です。
ちなみに、

1.全110フィールドが同一のデータ
2.全110フィールドの内1つでも違うフィールドがT_BBBにあるデータ
3.全110フィールドの内1つでも違うフィールドがT_CCCにあるデータ

の3つのテーブルを作りたいということですよね。

私が考えた方法としては

Dim rs_BBB As DAO.Recordset
Dim rs_CCC As DAO.Recordset
Dim same_flag As Boolean
〜レコードセットにデータをセット〜

'T_BBBを元に比較、同一データとT_BBBにだけあるデータを拾う
Do Until rs_BBB.EOF 
Do Until rs_CCC.EOF
 If 全フィールド比較して同一 Then
  同じデータとして新テーブルに挿入
  same_flag = True
  Exit Do
 End If
Loop
If same_flag = False Then 'T_CCCに同じデータが無かった場合
 T_BBBにだけあるデータとして新テーブルに挿入
End If
same_flag = False 'フラグのリセット
Loop

'T_CCCを元に比較、T_CCCにだけあるデータを拾う
Do Until rs_CCC.EOF 
Do Until rs_BBB.EOF
 If 全フィールド比較して同一 Then
  same_flag = True
  Exit Do
 End If
Loop
If same_flag = False Then 'T_BBBに同じデータが無かった場合
 T_CCCにだけあるデータとして新テーブルに挿入
End If
same_flag = False 'フラグのリセット
Loop

という感じで、物凄いループになりました。
「応答なし」になりそうで怖い…

SQLでできないか考えたんですが、Exists使ってできないでしょうか?

1.SELECT * INTO 新テーブル1 FROM T_BBB WHERE EXISTS(SELECT * FROM T_CCC)
2.SELECT * INTO 新テーブル2 FROM T_BBB WHERE NOT EXISTS(SELECT * FROM T_CCC)
3.SELECT * INTO 新テーブル3 FROM T_CCC WHERE NOT EXISTS(SELECT * FROM T_BBB)

これで新テーブルに保存される…と思います。
(もしかしたらとんでもない間違いをしてるかもしれません)

他の方へ:
間違っていたら指摘をお願いします。orz
・ツリー全体表示

【12097】Re:Set db = CurrentDb をする理由
お礼  kou  - 11/10/13(木) 8:44 -

引用なし
パスワード
   雅さん、返信ありがとうございます。

>特に問題ないんじゃないですかね?
>といっても連続してやると CurrentDb は新たにインスタンスを作成するんで
>実行速度に影響すると思いますが。

なるほど、つまり1回や2回実行する程度なら新たに変数を定義せず、CurrentDbをそのまま使っても問題なく、それ以上連続で実行するなら変数を定義して参照した方が実行速度やメモリ使用量で有利、ということでしょうか。
細かい回数はともかく、今後は連続使用の場合に変数を使っていこうと思います。

ありがとうございました。
・ツリー全体表示

【12096】Re:2つのテーブルの照合
回答    - 11/10/12(水) 16:51 -

引用なし
パスワード
   雅です。

VBAで全部書いちまったほうがよさそうですね。

手抜きしたければ
For FLD In TB_BBB.Fields
  If TB_CCC.Fields(FLD.Name).Value <> FLD.Value Then
    '一致しませんの処理
  End If
Next FLD
とか駆使してください
・ツリー全体表示

【12095】Re:Set db = CurrentDb をする理由
回答    - 11/10/12(水) 16:45 -

引用なし
パスワード
   雅です。

>DAOの解説ページで
> Set db = CurrentDb
>というのをよく見かけます。
>
>内容も使い方もわかるのですが、なぜそうしているのかがどうしてもわかりません。
>ただ単に
> CurrentDb.Execute(SQL文)
>のような使い方だと何か問題あるのでしょうか?

特に問題ないんじゃないですかね?
といっても連続してやると CurrentDb は新たにインスタンスを作成するんで
実行速度に影響すると思いますが。
・ツリー全体表示

【12094】Set db = CurrentDb をする理由
質問  kou  - 11/10/6(木) 14:16 -

引用なし
パスワード
   ちょっとした疑問で申し訳ないのですが、過去ログに無かったので質問させて頂きます。

DAOの解説ページで
 Set db = CurrentDb
というのをよく見かけます。

内容も使い方もわかるのですが、なぜそうしているのかがどうしてもわかりません。
ただ単に
 CurrentDb.Execute(SQL文)
のような使い方だと何か問題あるのでしょうか?

私には入力する文字列が短くなった程度にしか理由が考えられませんでした。
よろしくお願いします。
・ツリー全体表示

【12093】Re:EXCELへの出力・編集
発言  ちょっち  - 11/10/6(木) 11:14 -

引用なし
パスワード
   ▼AKG さん、よろずや さん

横からすみません。
通りすがりでこのスレを見てしました。

>1番上のこの行でした
>xlSheets("strSheetName").Select

↑のエラーについてのみ回答させて頂きます。。。

SETしているのは「xlSheet」に対してなので、
末尾に「s」をつけている為にエラーが出ています。

このようにして頂ければエラーは出なくなるはずです。
「xlSheet("strSheetName").Select」


そしてもう一つ、
「"」でstrSheetNameを囲んでいますが、こちらは変数
になっていますので、「"」を外さないと、その文字の
シートがないのでエラーになります。
「xlSheet(strSheetName).Select」


以上、お邪魔いたしました。
・ツリー全体表示

60 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1078325
(SS)C-BOARD v3.8 is Free