ACCESS2007でテーブルへの書き込み

このQ&Aのポイント
  • ACCESS2007を使用してテーブルへのデータの書き込み方法についてアドバイスをお願いします
  • テーブルへのデータの書き込みで問題が発生しています。他のデータは正しく書き込まれるのですが、特定の項目がテーブルに書き込まれません
  • テーブルへのデータの書き込み方法についてアドバイスをお願いします。手入力以外のデータは正常にテーブルに書き込まれません
回答を見る
  • ベストアンサー

ACCESS2007でテーブルへの書き込み

何時も大変お世話になっております。 ご教授をお願い申し上げます。 環境 ・windows7 ・ACCESS2007 過去事例に似たケースが有ったのですが、上手く行かなかったので 書き込みさせて頂きました。 画像の様な画面があります。 入力日・品番・数量・備考・消化区分・支払日は手入力で それ以外の 品名・単価・購買先・勘定区分はDlookUpにて商品マスタと購買先マスタから 引っ張って来ております。 全ての項目は別のテーブルに蓄積させて行く考えでおります。 上手く行かない部分は手入力以外の部分が蓄積させたいテーブルに 書き込まれない事です。 コードで引っ張って来ているので、他でも同様にコードで引っ張ればよいのでは? というお話もあるかと思うのですが、どうしてもテーブルに書き込みたく苦慮しております。 変なやり方かとは思いますが、何とぞアドバイスをお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

> 変なやり方かとは思いますが、 変なというより、無意味なやり方だとは思います。 コードを展開したものをテーブルに保存する理由は乏しいです。 通常はそのためにクエリを使いますから。 再考の余地はありそうですが、そこには多くは言及しません。 つまり、「非連結」のテキストボックスをテーブルに書き込みたい、ということですね。 とりあえず、すぐに浮かぶのは 「いっその事、フォーム自体を非連結にして、  登録ボタンが押下されたら“追加クエリ”を走らせる。」 という手段でしょうか。

xyz00000
質問者

お礼

tsubuyuki様 有難うございます。 >変なというより、無意味なやり方だとは思います。 やはりコードがあり、マスタも存在するのにも係わらず子の様な方法は無意味ですね。 アドバイス頂きました方法も含めて再考してみます。 有難うございました。

関連するQ&A

  • ACCESS2000のテーブル構造

    ACCESS2000のテーブルの作り方について質問します。 伝票フォームを作り「取引先コード」「商品区分コード」「商品コード」3項目を入力したら単価が表示されるようにしたいのですが、うまくいきません。 (同じ商品でも取引先により単価が違うので、3つの情報がそろったときにはこの単価になるという形にしたいのです) 現状は「商品区分テーブルの区分コード」と「商品マスターテーブルの区分コード」  「商品マスターテーブルの商品コード」と「単価テーブルの商品コード」をそれぞれ1対多リレーションし、 そして「単価テーブルの単価コード.商品コード取引先コード,単価」で選択クエリを作り、それを伝票のサブフォームにしてみたのですが、商品コードが入力できませんでした・・・ 何冊か本を参考にして作ってみたのですがうまく出来ませんでした お分かりになる方がいらっしゃいましたら教えてくださいよろしくお願いいたします。

  • ACCESS クエリからテーブルへのコピペ

    Pzrivate Sub cmb品番_AfterUpdate() Dim Rst As DAO.Recordset Dim z As String z = DLookup("コード", "Q_コンポーネント", "専用コード='" & Me.tx専用コード & "'") Set Rst = CurrentDb.OpenRecordset("W_部品一覧", dbOpenTable) With Rst .AddNew .Fields("区分") = DLookup("部門", "Q_マスタ", "専用コード='" & z & "'") .Fields("分類1") = DLookup("分類1", "Q_マスタ", "専用コード='" & z & "'") .Fields("分類2") = DLookup("分類2", "Q_マスタ", "専用コード='" & z & "'") .Fields("品番") = DLookup("材料", "Q_マスタ", "専用コード='" & z & "'") .Fields("品名") = DLookup("品名", "Q_マスタ", "専用コード='" & z & "'") .Fields("コード") = DLookup("コード", "Q_マスタ", "専用コード='" & z & "'") .Fields("品種") = DLookup("品種", "Q_マスタ", "専用コード='" & z & "'") .Fields("重量") = DLookup("重量", "Q_マスタ", "専用コード='" & z & "'") .Update End With Rst.Close Set Rst = Nothing End Sub ------------------------------------------------------------ 上記のコードで「Q_マスタ」クエリの内容を「W_部品一覧」テーブルにコピペしています。 ※「W_部品一覧」テーブルはサブフォームです。 「Q_マスタ」クエリの専用コードフィールドには「z」と一致する値が複数あるのですが、上記コードではそのクエリ内の一番上の1レコード分しかコピペできていません。 「z」の値が一致している全てのフィールドを「Q_マスタ」→「W_部品一覧」にコピペするようにしたいです。 For~NextやDo While~Loopを使って処理回数を増やしてみたのですが、同じレコードの内容が繰り返しコピペされてしまいました。 どうすれば複数のレコードをコピペできるかご教示頂けますようお願いします。

  • Access テーブル内検索を教えてください。

    いつもお世話になっております。今回、また皆様のお知恵をお貸しいただきたく思います。 検索対象テーブル:社員マスタ(ユニオンクエリ)複数件 検索値:画面リストボックスより入力された部署コード・BUSYO 処理内容:社員マスタの部署コードに入力値BUSYOが一致している データに【更新処理:(仮)INSERTクエリ】を実行したい。 DLookup()や、FindRecord を調べましたが私の技力は限界です。 どうか、ご教授お願いします。 ■コード(実際チャレンジした一部です。) 'str検索条件を条件にバンドIDをT_メンバーテーブルから検索する strBusyo = DLookup("[部署コード]", "qry_社員マスタ", BUSYO) '結果のテスト表示 If strBusyo = "" Then  MsgBox BUSYO& "は、見つかりませんでした" Else  qry_社員マスタから条件に合致したデータをテーブルにInsert  DoCmd.OpenQuery "qry_追加処理"  DoCmd.FindRecord strBusyo 'データを検索する  DoCmd.GoToControl "[部署CD]" 'コントロールを[部署CD]へ移動 End If

  • Access DLookUp関数について

    DLookup関数を使用して、フォーム上にテーブルの値を返したいと思い、 試行錯誤をしたのですが、思うように値が返されません。。。 どうかお力添え下さいますようお願い致します。 「得意先&出荷先」テーブルに「得意先コード」「名称」項目を設け、 「詳細入力」フォームの「得意先コード」に値を入力をすると、 「得意先名称」項目に、テーブルの「名称」項目の値を返す動作を設定したいのです。 私は、下記のように書きましたが、「#Type!」と表示され、思うような動作をしません。 =DLookUp("[名称]","[得意先&出荷先]","[得意先コード] = '" & [Forms]![不具合詳細入力フォーム]![得意先名称] & "'") どこがおかしいのでしょうか?? またDLookUp以外でも、もし上記のような動作を実現させる方法がありましたら、ぜひご教授ください! 宜しくお願いいたします。

  • Access非連結フォームから複数レコード挿入

    お世話になっております。 Access2003を使用しております。 <テーブル ”商品マスターT”> code   shouhin =========================== 1    チョコ 2    ラムネ 3    ジュース 4    団子 5    ガム <フォーム "商品入力フォーム"(非連結・単票フォーム)>      商品コード       商品名 1行目 [非連結(テキスト0)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト0])] 2行目 [非連結(テキスト1)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト1])] 3行目 [非連結(テキスト2)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト2])] 4行目 [非連結(テキスト3)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト3])] 5行目 [非連結(テキスト4)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト4])]  商品コードを入力すると商品マスターTより商品名を引っ張ってきます。 <テーブル "履歴T"> code2   shouhin2 ==============================  データは空です 上記のものがあるときに商品入力フォームで入力した行数分だけ テーブル履歴Tにレコード追加したいのですが・・・ そういったことは可能でしょうか?非連結フォームから複数レコード追加は難しいでしょうか? 以上宜しくお願いします。

  • Accessでテーブルを参照させ、データーを更新させたい。

    価格マスターテーブルの価格フィールドの価格を新価格に変更しました。(手入力にて上書き済み)価格マスター以外のテーブルの価格フィールドの価格を、価格マスターを参照(新価格)させ、一気に新価格に変更させたいのですが、何か良い方法ありますでしょうか?よろしくお願い致します。

  • Access2010フォーム関数からテーブル入力

    アクセス2010について過去からの質問があまりないようですので 浅学ながら質問させていただきます。 フォームのテキストボックス内にて DlookUp関数で返した値を、 "Aテーブル"へ自動で入力したいのですが、 そのような関数はあるのでしょうか? また、このような操作は Dlookupを記述しているコントロールソースから 改行でコードを入力すればよいのでしょうか? ご教示いただければ幸甚です。 よろしくお願いいたします。

  • 【Access97】DLookupについて

     Access97を使って今、データベースを作成していますが、行き詰まってしまいました。  まず大まかな構成を書くと… <テーブル> 【○○班データ】テーブル ・「データナンバー」フィールド ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド 【部材マスター】テーブル ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド <クエリー> 【○○班データクエリー】 「○○班データ」テーブルを元に選択クエリーを作成(全てのフィールド) <フォーム> 上記のクエリーを元に作成。 ここからが質問内容になるのですが、「部材名」をコンボボックスで入力したら、Dlookup関数をテキストボックスのコントロールソースに記述して「部材ナンバー」と「部材コード」が表示されるようにはできました。 ですが、フォームで表示された「部材ナンバー」や「部材コード」がクエリーやテーブルには反映(入力)されておらず、どうしたらいいか手詰まりになっています。 もし、対処法を御存知の方がいらっしゃったら、是非とも御教示をお願いします。 念の為にテキストボックスのコントロールソースで記述したDLookup関数を書いておきます。 「部材ナンバー」の呼び出し =DLookUp("[部材ナンバー]","[部材マスター]","[部材名]='" & [部材名] & "'") 「部材コード」の呼び出し =DLookUp("[部材コード]","[部材マスター]","[部材名]='" & [部材名] & "'")

  • アクセスフォームで別テーブルの呼びだし。。。

    よろしくお願いします。 アクセスで区分と連番というテーブルがあります。 フォーム連番を使い入力していますがフォームから手入力するのが大変なので区分というテーブルをつくり、入力するときに区分テーブルから参照できるようにしたいのです、リレーションショップはしてみましたが考えているような参照はできませんでした。 フォーム連番は下記4項目入力しています。 管理区分: 連番: 機器番号: 機器名称: テーブル区分は下記の2項目です 管理区分: 機器名称: このときフォームの機器名称のところで区分の機器名称を参照してほしいのですが。 教えてください、お願いします。

  • Access2010のリンクテーブルについて

    Access2010のリンクテーブルについて質問をさせてください。 現在、社内ではExcelシートで対応ログを残しています。 ログ入力や検索のことを考えれば、Accessへ移行するべきだと思うのですが、現在その予定はありません。また、ここで対応内容に応じて「区分」を付加していきたいと考え、以下のことを行いました。 1.ExcelシートをリンクテーブルとしてAccessに取り込み。  [対応テーブル]   ・対応NO   ・対応内容 2.今後加えていきたい区分のテーブルを作成  [区分マスタ]   ・区分NO   ・区分名 3.AccessでExcelシートは更新できないので、1と2をもとにしたテーブルを作成  [対応明細]   ・対応明細NO   ・対応NO(1と結合)   ・区分NO(2と結合)    3.のテーブルに対し、「対応NO」と「区分NO」を入力していければ、もともとのExcelファイルをいじることなく、区分を追加していけるものと考えたのですが、「このレコードセットは更新できません。」とのエラーとなってしまいます。 以前のAccessではExcelのリンクテーブルも更新できたと思うのですが、大人の事情でそれができなくなったことは認識しています。その回避策として、リンクテーブルに編集を加えるのではなく、更新用のテーブルを用意して入力していこうと思ったのですが、それもできません。 回避策がありましたらご教示いただけますでしょうか。 宜しくお願いいたします。

専門家に質問してみよう