プロが教える店舗&オフィスのセキュリティ対策術

Access97で下記のような入力フォームを作成しました。

【1】「ファイルを参照」ボタンをクリック
【2】ダイアログボックスが開くので、目的のファイルを選択する。
【3】サブフォーム(表形式)の1件目に、そのファイルのフルパスが格納される。

この直後に【2】の操作によって2つ目のファイルを選択すると、
やはりサブフォームの1件目にファイルのフルパスが格納されてしまい、
最初に選んだファイルのパスが上書きされてしまいます。
ここで上書きせずに、次のレコードへ移動してからファイルパスを書きこむ
ロジックを書きたいのですが、VBA初心者なのでどうしたら良いのかわかりません。

ご教授を願います。

A 回答 (3件)

Docmd.GoToControl "サブフォームの名前"


Docmd.GotoRecord , , acNewRec
docmd.GotoControl "書込み先コントロールの名前"
Screen.ActiveControl = "ファイルのパス"

といった形でどうでしょうか?
もちろん下の2行は
Forms!Main.Sub!Control = xxxx
の形で1行にしても問題ないかと思います。
    • good
    • 0

フォームがどの様になっていて、何がしたいかわからないので


的外れな事かもしれませんが、、、
表形式のサブフォームはどこかしらのテーブルとつながって
いるんですよね?つながっているならテーブルに直接
データを入れてしまえば良いのでは、、、?それではダメですか?

余計なおせっかいですが、サブフォームではなくてリストボックス
の方が良さそうなイメージ?
    • good
    • 0

DAOを使用したサンプルを記述します


(参照設定にて「Microsoft DAO Object Library」をチェックして下さい)

'~~~~~~~~~~
Private Sub CmdFilePath_Click()
Dim stPathName As String
Dim RS As DAO.Recordset

'ファイル名取得
stPathName = Get_FullPathName

'取得できなかったら、処理終了
If stPathName = "" Then Exit Sub

'サブフォームのレコードセットクローン
Set RS = Me.SubForm.Form.RecordsetClone

'新規追加
RS.AddNew
RS![PathName] = stPathName
RS.Update

'レコードセット解放
Set RS = Nothing

'表示更新
Me.SubForm.Form.Repaint

End Sub
'~~~~~~~~~~

サブフォームのフォーカスを新規レコードに移動する方法は、残念ながら知りません(T_T)
(既に登録してあるデータならば、「GotoPage」メソッドを使用すれば移動できるのですが・・・)

参考までに
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!