• ベストアンサー

MS Access2000のフォームについて

pooh_200xの回答

  • ベストアンサー
  • pooh_200x
  • ベストアンサー率46% (7/15)
回答No.1

私も初心者なので詳しいことは言えないのですが、氏名、生年月日、 年齢とBの(氏名、生年月日、年齢、住所、電話番号等など)は同じ テーブルなのでしょうか? もし同じテーブルであれば Dim lngID As Long lngID = Me.id.Value 'フォームのidフィールドの値を変数に格納 DoCmd.Close’Aのフォームを閉じます。 DoCmd.OpenForm "テストB", acNormal, , "id=" & lngID  'OpenFormの第4引数に抽出条件をセットします。 私の少ない経験上このような感じでした。解説するとidというテキスト Boxを付けてあげてキーとします。 それを元に同じ内容のBのFormを開くことが出来ます。 そうではなくて検索の場合は Dim dte As String Dim strSQL As String If IsNull(Me.txt3) = True Then MsgBox "抽出条件が入力されていません!(^o^;)" Exit Sub End If    ’txt3というTextBoxに抽出条件が入っていない場合はErr dte = Me.txt3.Value strSQL = "SQNO='" & dte & "'" 'SQL文のWhereの中味を抽出条件として入れる。 '(フィルタプロパティの性質でWhereの中味のみ条件設定が出来る) With Me.subList.Form 'メインフォームの中のサブフォームを指定 .Filter = strSQL .FilterOn = True End With 上記のような検索方法もあります。 上記はサブフォームの一覧を検索するため私が作ったものなので あまりお役には立てないのかもしれません。

tokin
質問者

お礼

早速のアドバイスありがとうございます。 テーブルは同じですので、早速使わせていただきます。 また、大変勉強になりましたありがとうございます。

関連するQ&A

  • ACCESS 表形式フォームで1レコードずつ計算したい

    こんなことを考えています。 氏名  生年月日 Aさん 1950/8/8 Bさん 1988/10/8  :    : このテーブルを表形式フォームでそのまま表示し、 各レコードの後ろに「年齢」という非連結フィールドを 作って、そこに人ごとの年齢を計算して入れたいのです。 この場合表形式フォームが妥当なのかどうかもわかりません。 ただ、年齢の計算はそのフォームを開いた日で計算するので、 テーブルに年齢というフィールドは作りたくありません。 どんな方法がありますか?

  • ACCESSのフォームでの入力について

    ACCESS2000を使用しています。初心者のほうです。住所録のテーブルを作って、作業用のフォームを表形式で作りました。そのフォームに宛名印刷するためのコマンドボタンを配置しています。フォーム上で一件入力し、そのコマンドボタンを実行するのですが、その時点ではレコードとして入力されていないようで、実行できません。フォームを一度閉じて、また開くと出来るようになります。1件のレコードをフォームから入力すると同時にテーブルへも保存されていくようにしたいのですが、簡単にやる方法はないでしょうか?

  • アクセスであるフォームから別のフォームへリンクさせる際の不具合について

    アクセス2000で、あるフォームからコマンドボタンを用いて別のフォームへリンクさせました。氏名というフィールドを共通の項目としてリンクさせたのですが、氏名を入力し、コマンドボタンをクリックした場合、リンク先には飛ぶのですが、リンク先には前に入力した氏名が反映されていません(氏名も何も入力されていないフォームが開きます)。 フォーム入力画面で、氏名を入力したとに、新しいレコードを開き、その後もう一度、氏名を入力したレコードに戻って、ここでコマンドボタンをクリックすると今度はリンク先にも氏名が反映されています。 これは、どこに問題があるのでしょか。

  • Access フォームの入力について

    アクセス初心者です。 フォームA(メインとなる画面)でコマンドボタンをクリックすると フォームBが開くように設定しました。 フォームAでレコード1を入力時にコマンドボタンをクリックすると フォームBのレコード1に フォームAのレコード5を入力時にコマンドボタンをクリックすると フォームBのレコード5に移動してデータを入力できるようにすることは可能でしょうか?可能であればどのようにしたらよいでしょうか? 具体的には テーブル 社員NO、氏名・・・、希望地域(yes/no型)があります。 フォームA ・社員NO ・氏名など フォームB ・希望地域(チェックボックスでチェックする。複数選択可) フォームAを入力時にフォームBを開いて希望地域にチェックできる というようにしたいのですが、 フォームAからフォームBに移動するといつもレコード1が表示されてしまいます。 自分なりに試行錯誤しているのですがどうしてもできません。 よろしくお願いします。

  • レコードの値を取得

    お尋ねします。 職員台帳をアクセス2000で作成しています。 検索フォームを作って、部署名をコンボボックスで選択すると、その部署に所属する職員の一覧を表形式で表示するようにしました。 表示するフィールドは、部署名、職員氏名、職員番号、入社年月日です。 次に、表形式で抽出されたそれぞれのレコードについて、コマンドボタンを押して別のフォームを開き、そのフォームで個別の情報を入力したいと考えます。各レコードそれぞれにコマンドボタンを配置する方法です。 別のフォームを開くときに、各レコード(テキストボックス)に表示されている職員氏名と職員番号の「値」を取得したいのですが、その方法がわかりません。表形式のレコードのValueを取得する方法をVBAでどう記述すればいいか、どなたか教えてください。 よろしくお願いいたします。

  • Access2003でフォームにあるコマンドボタンで更にフォームを開く

    Access2003でフォームにあるコマンドボタンで更にフォームを開くときのVBA記述で困っています。 Access2003で社員情報管理のデータベースを作成中です。 社員の情報を入力するにあたり、【基本情報】と【詳細情報】とでフォームを分けてあり、【詳細情報】を入力したい場合は、"基本情報フォーム"にあるコマンドボタンをクリックして"詳細情報フォーム"を開くようになっています。 この際、"基本情報フォーム"で開いている社員の【社員番号】を"詳細情報フォーム"の【社員番号】欄にも自動的に表示させるため、以下のようなVBAを記述しました。 Private Sub コマンドボタン_Click() DoCmd.OpenForm "詳細情報フォーム" Forms![詳細情報フォーム![社員番号].DefaultValue = Me![社員番号] End Sub 【社員番号】は7ケタの半角英数で、社員によって、数字だけの場合と、英数混じっている場合とがあります(データ型はテキスト型にしてあります)。 困っているのは、 1.上記を実行した際に、数字だけの社員番号は問題ないのですが、英数混じりの場合だと"社員番号"テキストボックスが「#Name?」という表示になってしまう 2."基本情報フォーム"のコマンドボタンをクリックして新規の"詳細情報フォーム"を開き(社員番号のみが反映され、他の項目は空欄の状態)、詳細情報を入力→保存したあと、別の社員番号で"基本情報フォーム"を開き、コマンドボタンで"詳細情報フォーム"を開くと、前に入力した社員の情報が出てきてしまう。 (つまり、"詳細情報フォーム"のもととなるテーブルに、1行でもレコードがあると、それが出てきてしまう。) 【詳細情報】は、 1.データを入力する社員としない社員とがいる 2.新規でレコードを作成する場合と、既存のレコードを上書きする場合とがある ので、もととなる"詳細情報テーブル"にその【社員番号の】レコードがなければ新規入力画面を、レコードがあればそのレコードを呼び出す形にしたいのですが、英数混じりの表示の件も含め、どうすれば、正しく表示されるか教えていただきたいです。 ぜひぜひよろしくお願いします。

  • ms accessでのフォームの開き方

    アクセス初心者です。 アクセスで「サブフォームa(~n)」を持つ「フォーム1」を参照用(ユーザー用read only)と追加変更用(管理者用)を開きたいのです。 (サブフォームは「フォーム1」の主キーで選択されたクエリを基にしたフォームを使用) 私の不勉強さもあるのか、マクロでは、フォームをread onlyに設定できないようですし、「フォーム1」のプロパティの設定をしてしまうと、「フォーム1」は参照専用のフォームとなってしまうようです。 また、サブフォームについては、追加・編集モードの選択もできず、結局コピーではできず、苦労しきりです。 こういう場合、初心者レベルの私としては、「フォーム1」を基に、プロパティを変えることで対応せざるを得ません。(サブフォームも二通りで二度手間) 実務上は、手間とボリウムの問題ですので構わないのですが、「そんなはずはない」という思いもありますし、でもVBEのコードを書くには、私の「バカさ加減」が許しませんし・・・・ こういう場合は、一般的にはどうしたらよいのでしょう。 現状サブフォームには、検索結果としてクエリを基にしたフォーム(表形式)に詳細表示ボタンを貼り付けています。メインフォームの主キーにリンクしたレコードがサブフォームに表示されるわけですが、そのサブフォームに詳細表示ボタン(マクロ)で詳細情報を、read onlyと編集を選択させたいのですが。 私の能力とユーザーのレベルからは、別々のフォームでプロパティをそれぞれ設定して、メニューで分岐させるのが、不意なレコードの書き換えや削除を防止する最良の方法でしょうか? どなたかアドヴァイスお願いします。 質問もままならないほど、初心者です。

  • アクセスで指定したレコードをフォームで開く方法?

    アクセスで、帳票形式のフォームで選択したレコードの内容を、詳細を表示する用のフォーム(単票形式)で開きたいのですが、どうしたらよいのでしょうか?(初心者です) 例えば、帳票形式のフォームで「予約番号:1」のレコード 選択した状態で、ボタンをクリックすると、 詳細を表示する用の単票形式のフォームの「予約番号:1」のレコードが表示されるようにしたいのです。 マクロでは出来なそうなので、VBAで・・・というところまでしか検討がつきません。 使用しているのはアクセス2002です。 どなたかご存知の方がいらっしゃいましたら、教えてください。よろしくお願いします。

  • ACCESS2000のフォームについて

    フォーム(←単票形式の)のデザインビューで、ツールボックスから、コマンドボタンウィザードを使い、コマンドボタンを作りましたが、ウィザードの最後のボタン名を指定するところで、漢字変換ができず、困っています。 いつもひらがなにしか入力が出来ないのですが、ここで直接漢字入力にするにはどういう処置をすればいいですか。 それから、追加の質問ですが、 作ったコマンドボタン(←レコード削除用)で、レコードを削除しようとしたところ、「リレーションシップが設定されたレコードが、テーブルにあるため、レコードの削除や変更を行えません。」と、エラーメッセージが表示されます。 レコードをフォームから削除するにはどうすればいいですか。 (※無理にしたいわけではないが、そういう命令も勉強の一環でして見たいのです。) 宜しくお願いします。

  • Accessでレコードの保存をせずにフォームを閉じたい

    Accessでデータベースのレコード追加を行うフォームを作成しています。 コマンドボタン(1)をクリック→新しいレコードの追加 コマンドボタン(2)をクリック→フォームを閉じる としています。(ウィザードを使用して、埋め込みマクロ?を設定しています。) コマンドボタン(1)でレコードが追加されるのは問題ないのですが、 コマンドボタン(2)をクリックした場合も、レコードが追加されていることに気がつきました。 一般的に入力する人は、 データを追加しようと思って入力していたけれど、 途中でやめてフォームを閉じることってありますよね? そういう場合にレコードが追加されてしまったら問題だと思ったのです。 ですが、どうしたらレコードの追加をせずにフォームを閉じられるかがわかりません。 それって可能でしょうか? Access初心者です。難しいVBAとかはまだよくわかりません。 何か方法、アドバイス等ありましたら よろしくお願いします。