Access VBA質問箱 IV

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

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


1 / 500 ページ 前へ→

【13287】Re:Accessフォーム内のプロパティを検索
お礼  かけだしパパ  - 19/4/13(土) 23:31 -

引用なし
パスワード
   ご教示ありがとうございます!
この方法でなんとかいけそうです。ありがとうございました。
・ツリー全体表示

【13286】Re:Accessフォーム内のプロパティを検索
回答  亀マスター  - 19/4/10(水) 19:06 -

引用なし
パスワード
   こんな感じでどうでしょう。
開いていないフォームのコントロールにはアクセスできないので、
まずCurrentProject.AllFormsでデータベースファイル中の全ての
オブジェクトを抽出するところから始めています。

Sub test()

Dim f As AccessObject
Dim c As Control

'データベース上の全てのオブジェクトから
For Each f In CurrentProject.AllForms
  'フォームを見つけ
  If f.Type = acForm Then
    'そのフォームを開き
    DoCmd.OpenForm f.Name
    'フォーム中のコントロールから
    For Each c In Forms(f.Name).Controls
      'テキストボックスを見つけ
      If c.ControlType = acTextBox Then
        'そのコントロールソースに「0.08」を含んでいたら
        If InStr(c.ControlSource, "0.08") <> 0 Then
          'イミディエイトウィンドウにフォーム名と
          'テキストボックス名とコントロールソース式を出力
          Debug.Print f.Name & ":" & c.Name ":" & c.ControlSource
        End If
      End If
    Next c
    DoCmd.Close acForm, f.Name
  End If
Next f

End Sub

ここではイミディエイトウィンドウに結果を出力していますが、ここはテキストファイルに出力するなと、Replaceで「0.08」を「0.1」に置換するなと、必要に応じて変更してください。
・ツリー全体表示

【13285】Accessフォーム内のプロパティを検索
質問  かけだしパパ  - 19/4/9(火) 22:41 -

引用なし
パスワード
   環境:windows10+Access2013
他者が開発した稼働中のMDBシステム

例えば、フォームにテキストボックス「消費税」があり、そのテキストボックスのプロパティ「コントロールソース」に消費税率を含む下記のような式を記述があったとします。
=合計金額*0.08
このような「コントロールソース」に含まれる"0.08"の文字列を、プロシージャ内の検索にある「カレント プロジェクト」のようにMDBファイル内に存在するすべてのフォーム内の、コントロールのコントロールソース内の式を検索して見つけ出す方法はないでしょうか?

データベース構造の解析>テキストファイル等でエクスポートするとページ数が多く、作業効率が悪いので別な手段はないでしょうか?
・ツリー全体表示

【13284】Re:ホーム上でホーカス取得時、フールド...
回答  hatena  - 19/4/9(火) 14:44 -

引用なし
パスワード
   条件付き書式を使っても可能です。

条件付き書式で、
「次のセルのみ書式設定」で「フォーカスのあるフィールド」を選択して、
背景色をお好みのものに設定してください。

設定したいフィールド(テキストボックス)を複数選択してから、条件付き書式を設定すれば、1回の設定で済みます。
・ツリー全体表示

【13283】Re:ホーム上でホーカス取得時、フールド...
お礼  Blue impact E-MAIL  - 19/4/8(月) 22:03 -

引用なし
パスワード
   早速教えていただきありがとうございます。早速実施してみます。
・ツリー全体表示

【13282】Re:ホーム上でホーカス取得時、フールド...
回答  亀マスター  - 19/4/8(月) 21:14 -

引用なし
パスワード
   ホーム→フォーム
ホーカス→フォーカス ですよね?

フィールドの色とは、テキストボックスの色のことでしょうか。
でしたら、設定したいテキストボックスの「フォーカス取得後」イベントで

テキストボックス名.BackColor = RGB(255, 255, 0)
(※RGBの値は設定したい色。この例では黄色)

「フォーカス喪失後」イベントで
テキストボックス名.BackColor = RGB(255, 255, 255) '背景色を白にする場合
テキストボックス名.BackStyle = 0 '背景色を透明にする場合

とすればいいです。
・ツリー全体表示

【13281】ホーム上でホーカス取得時、フールドの背...
質問  Blue impact E-MAIL  - 19/4/8(月) 20:16 -

引用なし
パスワード
   ホーム上でホーカス取得時、フールドの背景色を変えたい。
フィールドがたくさんあるので、フーカスがあるフィールドの背景色を変えて、どこにホーカスがあるか、わかりやすくしたい。イベントのマクロを利用すれば、可能だと思うのですが、ご存知の方、教えてください。
・ツリー全体表示

【13280】Re:excleデータインポートFileNameをイン...
お礼  キム E-MAIL  - 19/3/29(金) 11:11 -

引用なし
パスワード
   ありがとうございます。基礎が全く分かっていない事を痛感
しました。
・ツリー全体表示

【13279】Re:excleデータインポートFileNameをイン...
回答  よろずや  - 19/3/28(木) 11:15 -

引用なし
パスワード
   DoCmd.TransferSpreadsheet acImport, , "T-天気・稼働内容転送", "filename ", True, "天気・稼働内容転送!"

DoCmd.TransferSpreadsheet acImport, , "T-天気・稼働内容転送", filename, True, "天気・稼働内容転送!"
・ツリー全体表示

【13278】excleデータインポートFileNameをインポ...
質問  キム E-MAIL  - 19/3/27(水) 14:42 -

引用なし
パスワード
   excleデータインポートDoCmd.TransferSpreadsheet acImportのFileNameをインポート日付からフルパスを入力しましたが。途中MsgBoxには表示されますが。
FileNameにフルパスが入りません。

VBA初心者でどうしていいかわかりません。
よろしくお願い致します。

Private Sub Excelのデータ読み込む_Click()
Dim intRtn As VbMsgBoxResult
  intRtn = MsgBox("APK・AMF砂処理日報終了しましたか?。" & vbLf & "Excelデータを転送しますか?", vbYesNo + vbQuestion, "Excelデータ転送確認")
 If intRtn <> vbYes Then
  MsgBox "転送をキャンセルしました。"
  End
 End If
Dim dtNow As String
Dim filename As String, filename1 As String, filename2 As String, filename3 As String, PathName As String, filename4 As String, pos As Long
  dtNow = Form_F_メインフォーム.インポート日付
  Me.txt年 = Year(dtNow)
  Me.txt月 = Month(dtNow)
  Me.txt日 = Day(dtNow)


  pos = InStrRev("C:\Users\研\Desktop\砂処理日報\APK・AMF砂処理日報.xlsm", "\")
  PathName = Left("C:\Users\研\Desktop\砂処理日報\APK・AMF砂処理日報.xlsm", pos)
  filename4 = Mid("C:\Users\研\Desktop\砂処理日報\APK・AMF砂処理日報.xlsm", pos + 1)
  If IsDate(Form_F_メインフォーム.インポート日付) = True Then
    filename1 = Year(dtNow)
    filename2 = Month(dtNow)
    filename3 = Day(dtNow)
  End If
    filename = PathName & filename1 & "年砂処理日報" & "\" & filename1 & "." & filename2 & "月" & "\" & "砂処理日報" & "\" & filename1 & "." & filename2 & "." & filename3 & "\" & filename4
    
     MsgBox filename
DoCmd.TransferSpreadsheet acImport, , "T-天気・稼働内容転送", "filename ", True, "天気・稼働内容転送!"
 DoCmd.OpenQuery "Q-天気・稼働内容差分転送", acViewNormal, acEdit
 DoCmd.OpenQuery "Q-天気・稼働内容転送削除", acViewNormal, acEdit

 DoCmd.SetWarnings True
  Table削除

MsgBox ("データ取り込みました。")
 Exit Sub
End Sub
・ツリー全体表示

【13277】VBAクラスオブジェクトの解放が出来ない
質問  ちび太  - 19/3/7(木) 14:46 -

引用なし
パスワード
   Access2013を使っています。

使わないフォーム(テストフォーム)を削除したのですが、VBAのクラスオブジェクトに削除済みのフォームが残ったままになり、"フォーム名'テストフォーム'が正しくないか、存在しないフォームを参照しています"といったエラーが出るようになりました。
削除しようと右クリックしたのですが"form_テストフォームの解放"はグレーになり選べませんでした。
削除していないフォーム名も同じようにグレーアウトしています。

因みに、オブジェクトの表示→その他→コード保持→いいえ に変更してもグレーアウトのままでした。

何か解決策はありますでしょうか。
・ツリー全体表示

【13276】Re:トランザクションの状態判定
お礼  ななしのゴンベ  - 19/1/21(月) 13:23 -

引用なし
パスワード
   ありがとうございます!おかげで解決しました!
・ツリー全体表示

【13275】Re:タブオーダーが上手く行かない
お礼  朕国開園  - 19/1/18(金) 14:13 -

引用なし
パスワード
   自己解決できました。

フォーカスが外れた際に、最終レコードでなければ次のレコードに移動する処理が妙な動き方をして3列目からフォーカスされていたようです。

フォーム起動時に一度(二列目フォーカス)、タブキーでの移動で一度(3列目フォーカス)の様に動いていたみたいです。

該当箇所のソースを消したら想定通りに動くようになりました。
・ツリー全体表示

【13274】Re:タブオーダーが上手く行かない
回答  hatena  - 19/1/18(金) 10:48 -

引用なし
パスワード
   ▼朕国開園 さん:
>サブフォームは2行から9行ほどの単票形式の表で、チェックボックスがあります。

「単票形式の表」というのがよくわからない。

単票フォームに、表のようなレイアウトでテキストボックスやチェックボックスが配置されているということでしょうか。
それとも、
「帳票フォームの表形式」で、「レコード数が2件から9件ほどある」ということなのでしょうか。

>タブを押下した場合に、1行目のチェックボックスにフォーカスを移動したいのですが、何故か3行目のチェックボックスにフォーカスされます。

フォーカスがどこにあるときにタブを押下した場合のことですか。
メインフォーム上のコントロールですか。
サブフォーム上のコントロールですか。

>Me.処理表_サブフォーム.SetFocus
>DoCmd.GoToRecord , , acFirst
>
>と挟んでも一つ前のコントロールからフォーカスを移動すると3行目にフォーカスされてしまいます。

このコードはどこのどのイベントに記述していますか。


>また、一度フォーム内のすべてのコントロールをタブで遷移し、二週目の移動を行う際は1行目からフォーカスされます。

これもどのフォームのことをいっているか不明です。
1行目というのは先頭レコードということですか。

あいまいな部分がおおすぎます。こちらからはそちらのフォームは見えないので、
見えない人にも伝わるように説明しましょう。

あと、サブフォームのタブオーダーの設定がどうなっているかも説明してください。
・ツリー全体表示

【13273】Re:GetOpenFileNameが動かない。
回答  亀マスター  - 19/1/16(水) 22:37 -

引用なし
パスワード
   これが参考になるのではないでしょうか。

Access2010(64)でのGetSaveFileName(comdlg32.dll)使用方法
ht tps://social.msdn.microsoft.com/Forums/ja-JP/418567cc-7c76-472c-9073-d7712a20787a
/access2010641239112398getsavefilenamecomdlg32dll20351299922604127861?forum=vbajp

※投稿の制限でURLの途中に改行が入っているのでつっくけてください。
・ツリー全体表示

【13272】GetOpenFileNameが動かない。
質問  ユサ E-MAIL  - 19/1/16(水) 21:13 -

引用なし
パスワード
   これまで、Win7+Access2010(32bit)上で動いていたAccessファイルを、
Win10+Access2016(64bit)で起動したところ、ファイル選択ダイアログが
表示されなくなってしまいました。
VBAにおいて、
Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
が動かないようです。
原因として、VBEにおいてツール⇒参照設定で、適切なライブラリファイルを
選べば解決するように思うのですが、どれを選べばいいのかわかりません。
他に原因と思われることもありましたら教えてください。
・ツリー全体表示

【13271】タブオーダーが上手く行かない
質問  朕国開園  - 19/1/16(水) 15:19 -

引用なし
パスワード
   サブフォームは2行から9行ほどの単票形式の表で、チェックボックスがあります。
タブを押下した場合に、1行目のチェックボックスにフォーカスを移動したいのですが、何故か3行目のチェックボックスにフォーカスされます。

Me.処理表_サブフォーム.SetFocus
DoCmd.GoToRecord , , acFirst

と挟んでも一つ前のコントロールからフォーカスを移動すると3行目にフォーカスされてしまいます。

また、一度フォーム内のすべてのコントロールをタブで遷移し、二週目の移動を行う際は1行目からフォーカスされます。

どうすれば一週目から1行目のチェックボックスにフォーカスさせられるでしょうか?
・ツリー全体表示

【13270】Re:トランザクションの状態判定
回答  亀マスター  - 18/12/29(土) 21:54 -

引用なし
パスワード
   寡聞にしてトランザクション中の判定方法は知りませんが、私であればこうするというやり方を(他にもっとスタンダード・適切なやり方があるかもしれませんが)。

Sub Sample()

  Dim WSP As Workspace

  On Error GoTo ErrLabel

  Set WSP = Workspaces(0)
  WSP.BeginTrans

  'トランザクション中の処理

  WSP.CommitTrans
  Set WSP = Nothing

  Exit Sub

ErrLabel:
  If Not WSP Is Nothing Then
    WSP.Rollback
  End If

このように、WSPをトランザクションの直前直後でセット、解放して、あとはトランザクション中かどうかの判定が必要なとき(エラー発生時など)に
If WSP Is Nothing Then
という風に、WSPがNothingかどうかで判定します。

あるいは、エラーラベルをトランザクション中の処理とそうでないときの処理で分けるという方法もあるかと思います。
・ツリー全体表示

【13269】トランザクションの状態判定
質問  ななしのゴンベ  - 18/12/27(木) 17:05 -

引用なし
パスワード
   トランザクション処理を行っているかどうかの判定方法がわかりません。

エラー処理で、トランザクション中の場合にのみ、
ロールバックを行うようにしたいのですが、判定方法を調べても出てきませんでした。

ご存知の方がいらっしゃれば教えていただけると嬉しいです。
・ツリー全体表示

【13268】Re:XMLファイルを出力したい
お礼  朕国開園  - 18/12/17(月) 14:18 -

引用なし
パスワード
   回答ありがとうございます。

出力ファイルの内容自体はできていたのですが、作成後の保存ができていませんでした。
ソースを全て見返すと宣言が一つ抜けており、それが原因で保存できなくなっていました。
・ツリー全体表示

1 / 500 ページ 前へ→
ページ:  ┃  記事番号:
1031915
(SS)C-BOARD v3.8 is Free