Access VBA質問箱 IV

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

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


1 / 500 ページ 前へ→

【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 -

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

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

【13267】Re:XMLファイルを出力したい
回答  hatena  - 18/12/13(木) 20:04 -

引用なし
パスワード
   何をxmlファイルとして出力したのでしょうか。

テーブルデータですか。
なら、下記が参考になるかと。

tsware.jp/tips/tips_171.htm
・ツリー全体表示

【13266】XMLファイルを出力したい
質問  朕国開園  - 18/12/13(木) 17:08 -

引用なし
パスワード
   XMLファイルを指定されたフォルダの下に作成したいのですが、

エラー番号=424
オブジェクトが必要です

というエラーが発生します。

ファイルの内容は作成されており、出力先も正しく設定されています。

呼出時の引数
filePath:"C:\Users\XXXX\Documents\ツール格納ディレクトリ"
fileName:"\XXXX.xml"

Public Sub Save(filePath As String, fileName As String)
  Dim FSO As Object
  
  Set FSO = CreateObject("Scripting.FileSystemObject")
  If FSO.FolderExists(filePath) = False Then
    FSO.CreateFolder filePath
  End If

  XMLDocument.Save (filePath + fileName)
  
  Set FSO = Nothing
End Sub
・ツリー全体表示

【13265】Re:【DB接続方法】HiRDBにVBAを利用して...
お礼  朕国開園  - 18/12/11(火) 9:57 -

引用なし
パスワード
   自己解決できました。
ありがとうございます。
・ツリー全体表示

【13264】Re:【DB接続方法】HiRDBにVBAを利用して...
質問  朕国開園  - 18/12/7(金) 15:13 -

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

回答ありがとうございます。
リンクテーブルの作成ではなく、処理ごとに別々のDBに接続したいんです。

処理AならDB1.のaテーブル
処理BならDB2.のaテーブル

のように、VBAのループ処理内で同じ構成の別のDBに毎回接続しなおす処理が必要なのですが、そういった処理はご存知でしょうか?
・ツリー全体表示

【13263】Re:【DB接続方法】HiRDBにVBAを利用して...
発言  よろずや  - 18/12/6(木) 22:29 -

引用なし
パスワード
   ▼朕国開園 さん:
>参考になるページでも構いませんので教えていただけると嬉しいです。

ht tps://symfoware.blog.fc2.com/blog-entry-619.html
・ツリー全体表示

【13262】【DB接続方法】HiRDBにVBAを利用して接続...
質問  朕国開園  - 18/12/6(木) 9:21 -

引用なし
パスワード
   Access2013を使用してツールを作成しています。

その処理の中で
「VBAを利用してXMLを読み取り、その情報を使って処理対象ごとに接続するデータベースを変更する」
というものがあるのですが、Accessを使用するのが今回が初の為、
VBAでHiRDBに接続する方法がわかりません。

サンプルコードだけではなく、参考になるページでも構いませんので教えていただけると嬉しいです。
・ツリー全体表示

【13261】for ~ next で値を取得し、フィールドに...
質問  ふくちゃん  - 18/11/12(月) 16:35 -

引用なし
パスワード
   Private Sub コマンド_click

Dim i as integer
Dim counter as integer

'フォームにあるtemp1フィールドには文字列"apple"が表示されている
counter = len(Me.temp1) → 5を取得

For i = 1 to counter

'Dlookupで取得したIDをフォームにあるフィールドtemp2に表示する
Me.temp2 = Dlookup("ID","クエリ名","クエリ項目='"&Mid(Me.temp1,i,1)&"'")

next

End Sub

質問
Debug.print ではappleに対応する全てのIDが表示されますが、
フィールドtemp2には最後の文字「e」に対応する文字しか表示されません。
全く意味がわかりません。ご教示願います
・ツリー全体表示

【13260】2つのレポートを合成して印刷
質問  にし  - 18/10/4(木) 13:55 -

引用なし
パスワード
   過去ログを検索してみましたが見つからなかったので、質問させて頂きます。
access2003を使っています。
現在は、1つのレポートで枠(横書き)を事前に印刷したものに、もう一つのレポートで明細(縦書き)を打出すようにしています。
枠も明細も横書きであれば問題ないのですが、枠で表示するタイトルなどは横書きに対し明細は縦書きで印字したいため、上手く印刷できません。
2つのレポートを合成して印刷することはできないでしょうか。
枠は固定なレイアウトです。
ご教授下さい。
よろしくお願い致します。
・ツリー全体表示

【13259】Re:DFirst関数について
回答  よろずや  - 18/9/7(金) 19:06 -

引用なし
パスワード
   ▼みかど. さん:
>「Access2003」と「2016」で作成した「DFirst関数」が「2013」ではエラーになってしまう。

VBE の参照設定に「参照不可」のものは有りませんか?
不要なものであればチェックを外しましょう。

>テーブル日付の最初の日付をフォームに表示したいので、

RDB のテーブルには、順序という概念がありません。
現状うまくいってるのはラッキーなだけです。
・ツリー全体表示

【13258】DFirst関数について
質問  みかど.  - 18/9/7(金) 10:59 -

引用なし
パスワード
   「Access2003」と「2016」で作成した「DFirst関数」が「2013」ではエラーになってしまう。
テーブル日付の最初の日付をフォームに表示したいので、
フォームの「テキストボックス」に「=DFirst("日付","テーブル日付")」を作っています。[2013]だけエラー表示なってしまいます。
どなたかエラーにならない表示方法があったら教えて下さい。
・ツリー全体表示

【13257】Re:空室照会
お礼  ゆか  - 18/8/16(木) 11:42 -

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

ご返信ありがとうございます。
よろずやさんのおかげで、今までどうしても逆のパターンしか表示されないのが
解決できました。

本当にありがとうございます。
助かりました。
また何かあったときには、どうぞよろしくお願い致します。
・ツリー全体表示

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