• 締切済み

アクセス2000 レコードセレクタで選択し、コマンドボタンで入力画面を表示したい

Access2000を使っています。 主キーは得意先IDになっています。 F得意先(フォーム)を作り、あ行だけの得意先をフォームに表示するまでは作れたのですが、レコードセレクタで得意先を選択し、コマンドボタン(仮にコマンド1とします)をクリックした時、F入金(フォーム)を表示させたいのですが、やり方が分かりません。 イベントプロージャーにどのように書き込めば良いのでしょうか? このような記述を探したのですが、何処をどのように変えたらよいのか。。。 Private Sub コマンド0_Click() If fDenpyoCheck() = False Then   ←これはどういう記述なの? Exit Sub End If                '照会画面を開く   strG_DenpyouCode = Me.Sbf明細領域.Form("得意先ID").Value DoCmd.OpenForm "F入金", acNormal End Sub strG_DenpyouCode = Me.Sbf明細領域.Form("得意先ID").Value             ↑この部分はF得意先(フォーム)を開いているから  strG_DenpyouCode = Me.F得意先.Form("得意先ID").Value  と変えてみたのですがエラーがでます。 初心者ですので詳しくお答えして頂けたら嬉しいです。

みんなの回答

  • H-SYS-03
  • ベストアンサー率34% (11/32)
回答No.1

こんにちは。 マクロのアクションでフォームを開くを選び、コマンドボタンに設定する方法ではだめでしょうか?

関連するQ&A

  • アクセスでのコマンドボタンでの上書き保存について。

    Private Sub cmd_修正_Click() Dim fname As String fname = "F_kihonn" '転送先のフォーム名 If SysCmd(acSysCmdGetObjectState, acForm, fname) = 0 Then DoCmd.OpenForm fname, acNormal '転送先フォームが開いてない場合は開く End If DoCmd.GoToRecord acDataForm, fname, acNewRec '転送先フォームの新規レコードをカレントにする '値の代入 Forms!F_kihonn!更新日 = Me!更新日 Forms!F_kihonn!コード = Me!コード Forms!F_kihonn!カナ = Me!カナ Forms!F_kihonn!発注者名 = Me!発注者名 Forms!F_kihonn!担当部署 = Me!担当部署 Forms!F_kihonn!郵便番号 = Me!郵便番号 Forms!F_kihonn!住所 = Me!住所 Forms!F_kihonn!ビル名等 = Me!ビル名等 Forms!F_kihonn!電話番号 = Me!電話番号 Forms!F_kihonn!FAX番号 = Me!FAX番号 Forms!F_kihonn!URL = Me!URL Forms!F_kihonn!特記事項 = Me!特記事項 End Sub というのを書きました。これだとコードにキーを持たせているので、転送先フォームでコード以外の内容を修正すると、「重複しているので変更できませんでした」とエラー表示が出ます。上書き保存ができればいいのでしょうけど。上書き保存のコマンドボタンとかを作ればいいのでしょうか??何かいい方法はありますか?わかる方いましたらご教示ください。初心者の質問ですみません。宜しくお願いします。

  • MS-Access レコードセレクタのイベント_2

    QNo.7816433で質問し、ご回答をいただいたのですが、新たな質問が発生してしまいました。 << ご回答 >> >Private Sub Form_DblClicj(Cancel As Integer) > Forms!フォームB.Filter = "ID=" & Me!ID > Forms!フォームB.FilterOn = True >End Sub << 新たな質問 >> この内容でイベントプロシージャを書いて、フォームAのレコードセレクタのWクリックで実行したところ、「フォームB」が見つからないエラーになってしまい、確かに「プロジェクトエクスプローラ」にはフォームBがありません。 フォームBは、対象テーブルと連結したフォームで、間違いなく存在するのですが、恥ずかしながらさっぱり理解できません。 フォームBも、フォームBを呼ぶフォームAも同じテーブルだからでしょうか? 因みにフォームAはクエリ経由であり、フォームBはテーブルそのものに連結しています。 もし、それが原因であるなら、フォームBは非連結で作るしかないのですが、 Forms!フォームB.ID = Me!ID のような記述で、全項目記述すれば良いでしょうか?

  • ACCESS 選択した値を別フォームに返す方法

    ACCESS初心者で、独学です。 質問の仕方や、言葉遣いが間々ならず、申し訳ございません。 現在、会社で受注管理システムを作り運用しています。 得意先の入力の効率化を図りたくて質問させて頂きました。 今のやりかたは・・・ 受注入力フォームの中で、コンボボックス「得意先コード」を選択すると、得意先が自動で入るようになっています。 その際、別の得意先検索フォームを開き、検索した得意先コードを覚えておいて、受注入力フォームの戻り、得意先コードを入力する、という方法を取っています。 これがやはり面倒との指摘があり・・・ 得意先検索フォームの得意先の行にコマンドボタン「選択」を設置しました。 クリックすると、受注入力フォームの得意先に値が返される、としたくてコードを作成しました。 私なりに考えたコードは以下です。 Private Sub cmb_選択_click() 受注入力F_cmb.得意先コード.value=Me.cmb.選択.Value End.Sub これだと、エラーでした。 ご教示お願い致します。

  • コマンドボタン名を取得して変数に代入したい。

    OS:windowsXp Access Version:Xp 既出でしたらすみません。 INDEXのフォームにて複数コマンドボタンを作り、それを押すと各登録フォームや集計フォームが開くようにしています。 さて、質問なのですが、コマンドボタンで別のフォームを開く時の処理を(フォーム名が違うだけで後は同じなので)まとめて書きたいのです。 現在は次のようにやっています。 ------------------------------------------------- Private Sub F_メニュー_Click() Call close_form DoCmd.OpenForm "F_メニュー", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub F_売上伝票_Click() Call close_form DoCmd.OpenForm "F_売上伝票", acNormal, , , acFormEdit, acWindowNormal End Sub      (中略) Private Sub 事業所別集計_Click() Call close_form DoCmd.OpenForm "F_事業所別集計", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub 消費税変更_Click() Call close_form DoCmd.OpenForm "F_消費税変更", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub システム終了_Click() Call close_form DoCmd.RunCommand acCmdExit End Sub Private Sub close_form() msgbx = False DoCmd.Close acForm, "index", acSaveYes End Sub ------------------------------------------------- これを  ボタン名_Click() ではなく  frm_open() 押されたボタン名を変数に取得(ボタン名=Form名にします。) DoCmd.OpenForm 押されたボタン名変数 のように共有したいのです。 どうすれば出来ますでしょうか?ご指導よろしくお願いします。

  • ACCESSとVBAとレコード

    こんにちわ。 このサイトは何回も利用させて頂いてるのですが、今回も宜しくお願い致します。 環境はOS:Xp・Access2000です。 フォームを開くときにレコードを並べ替えたいのですが、単に「顧客コード」を昇順で並べ替えるには Private Sub Form_Load() Me.OrderBy = "顧客コード" Me.OrderByOn = True End Sub というのは解ったのですが、 何の関連付けもしてない、指定のテーブルの内容を並べ替えるにはどのように記述したらよいのでしょうか? 「Me」の箇所をそのテーブル名 (例えば、顧客テーブル.OrderBy = "顧客コード") のようにすれば良いのでしょうか? 宜しくお願いします。

  • Access2000で画面入力のプログラム

    Access2000で画面入力のプログラムをフォームを使って作りました。[F1]~[F12]のキーを押したら、それに対応した画面上のボタン(トグルボタン)が連動して押されるようにしました。動作としては完璧に動くのですが、[F1]を押した時に同時にヘルプが起動してしまいます。この機能を殺すにはフォームの「キークリック時」のイベントで「KeyCode = 0」という構文を入れればいいのですが、今度はキー入力がすべて無視されてしまいテキストボックスに文字を入れることができなくなってしまいます。何かいい解決方法はないもんでしょうか。念のため以下にそのモジュールを添付しておきます。イベントはフォームの「キークリック時」イベントで、「Tbt_FXX」というのが12個並んだトグルボタンのコントロール名です。よろしくお願いしますです。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyF1 Me![Tbt_F01] = True - Me![Tbt_F01] Case vbKeyF2 Me![Tbt_F02] = True - Me![Tbt_F02] Case vbKeyF3 Me![Tbt_F03] = True - Me![Tbt_F03] Case vbKeyF4 Me![Tbt_F04] = True - Me![Tbt_F04] Case vbKeyF5 Me![Tbt_F05] = True - Me![Tbt_F05] Case vbKeyF6 Me![Tbt_F06] = True - Me![Tbt_F06] Case vbKeyF7 Me![Tbt_F07] = True - Me![Tbt_F07] Case vbKeyF8 Me![Tbt_F08] = True - Me![Tbt_F08] Case vbKeyF9 Me![Tbt_F09] = True - Me![Tbt_F09] Case vbKeyF10 Me![Tbt_F10] = True - Me![Tbt_F10] Case vbKeyF11 Me![Tbt_F11] = True - Me![Tbt_F11] Case vbKeyF12 Me![Tbt_F12] = True - Me![Tbt_F12] End Select End Sub

  • フォームを画面のど真ん中に表示させたいのですが

    フォームを画面のど真ん中に表示させたいのですが、 http://dobon.net/vb/dotnet/form/startposition.html を見たのですがコードの書き方がよくわかりません。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim f As New Form1() 'フォームを画面の真ん中に表示する f.StartPosition = FormStartPosition.CenterScreenf.Show() End Sub End Class こうすると、「FormStartPosition.CenterScreenf」の部分に波線がひかれます。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(0, 0) End Sub End Class これで左は時に表示する事は出来るのですが、真ん中に表示させるにはどうすればいいでしょうか?

  • accessvba 複数条件でFilterをしたい

    テーブル1 --------------------------------------- ID フィールド1 フィールド2 1 あ A 2 い B 3 う C 4 え D 5 お E --------------------------------------- を作成し、そのテーブルをもとに、帳票フォームを作成しました。 そのフォームに非連結のテキストボックス ID_テキスト フィールド1_テキスト フィールド2_テキスト 3つを設置しました。 行いたい事をクエリ(SQL文)で例えると、 --------------------------------------- SELECT テーブル1.ID, テーブル1.フィールド1, テーブル1.フィールド2 FROM テーブル1 WHERE (((テーブル1.ID) Like "*" & Forms!テーブル1!ID_テキスト & "*") And ((テーブル1.フィールド1) Like "*" & Forms!テーブル1!フィールド1_テキスト & "*") And ((テーブル1.フィールド2) Like "*" & Forms!テーブル1!フィールド2_テキスト & "*")); --------------------------------------- なのですが、 これをクエリを作成せずに、VBAで行いたいです。 各非連結のテキストボックスには、 更新後処理:[イベント プロシージャ] としています。 --------------------------------------- Private Sub ID_テキスト_AfterUpdate() Me.Form.Filter = _ "ID like '" & "*" & Me.ID_テキスト.Value & "*" & "'" Me.Form.FilterOn = True End Sub --------------------------------------- は、問題なくできるのですが、 Private Sub ID_テキスト_AfterUpdate() Me.Form.Filter = _ "ID like '" & "*" & Me.ID_テキスト.Value & "*" & "'" and & _ "フィールド1 like '" & "*" & Me.フィールド1_テキスト.Value & "*" & "'" Me.Form.FilterOn = True End Sub にすると、エラーになります。 andの繋げ方が良くないと思うのですが、どうすればいいでしょうか? 最終的には、 Private Sub ID_テキスト_AfterUpdate() Me.Form.Filter = _ "ID like '" & "*" & Me.ID_テキスト.Value & "*" & "'" "フィールド1 like '" & "*" & Me.フィールド1_テキスト.Value & "*" & "'" "フィールド2 like '" & "*" & Me.フィールド2_テキスト.Value & "*" & "'" Me.Form.FilterOn = True End Sub のような感じにしたいです。 ご回答よろしくお願いします。

  • Access レコードのロック

    Access2000 フォームを読み込んだとき,テキストボックス"受付No."欄が 入力されている場合,テキストボックス"件名"欄をデータの変更が 出来ないようにロックを掛けたいのです。 下記のイベントプロシージャを組んだのですが,全くロックされません。 VBA初心者なので多分とんでもない間違いをしていると思いますが, どこが違うのかご指摘下さい。 Private Sub Form_Load() If Me.受付No. <> "" Then Me.件名.Locked = True Me.件名.Enabled = False End If End Sub

  • Access 指定したレコードへ移動

    お世話になります。 Access2003で在庫管理システムを作っています。 商品マスター登録画面にて商品を検索する際 コマンドボタンで検索画面に移動 テキストボックスに入力した文字列を含む商品を 検索画面内のサブフォームに表示、該当レコードをダブルクリックすると 商品マスター登録画面にその商品が表示される…という ところまでなんとかかんとか作りました。 でもレコードソースを書き換えるところがまずいみたいで 商品マスター登録画面には表示したレコード1件のみしか 表示されなくなってしまいます。 私がやりたいのは単なるレコードの移動です… 調べましたがどうしたらいいのかわかりません。 よろしくお願いします。 検索画面内のサブフォームをダブルクリックしたときのコード Private Sub Form_DblClick(Cancel As Integer) On Error GoTo Err_Form_DblClick   Dim strSQL As String   With Application.Forms("商品マスター登録")     strSQL = "SELECT *"     strSQL = strSQL & " FROM 商品マスター"     strSQL = strSQL & " WHERE 商品ID = " & Me.商品ID     Form_商品マスター登録.RecordSource = strSQL         ↑ここをどう変えればいいでしょうか?   End With Exit_Form_DblClick:   Exit Sub Err_Form_DblClick:   MsgBox Err.Description   Resume Exit_Form_DblClick End Sub

専門家に質問してみよう