• 締切済み

ACCESSでAddNew直後にMeの値がNullになってしまうので困っています。

ACCESSのフォームで、追加ボタンを押したらフォームに表示中の値を継承して 新しいレコードを追加する処理をしています。 マシンAでは正しく動作するのですが、マシンBでは継承してくれません。 (前略) : Set RSC伝票 = Me.RecordsetClone Dim strCOND As String strCOND = "(伝票No.=" & Me.伝票No.検索 & ")" RSC伝票.FindFirst strCOND If RSC伝票.NoMatch Then RSC伝票.AddNew RSC伝票!伝票No. = Me.伝票No.検索 RSC伝票!納品日 = Me.納品日 RSC伝票.Update RSC伝票.Bookmark = RSC伝票.LastModified Me.Bookmark = RSC伝票.Bookmark End If : (後略) AddNew直後のMe.納品日の値をMsgBoxで見てみると、 マシンAでは値が表示されるのに、マシンBでは表示されません。 大変困っております。原因が思い当たる方、よろしくお願いします。 30分おきくらいに見に来ますので、追加情報が必要でしたらおっしゃってください。

みんなの回答

回答No.1

御疲れ様です >AddNew直後のMe.納品日の値をMsgBoxで見てみると、 >マシンAでは値が表示されるのに、マシンBでは表示されません。 「Me.納品日.Text」と「Me.納品日.Value」で表示される値が違うか確認してみてください

snoopy64
質問者

お礼

あれ~?さっきお礼書いたのに、消えてる!? ということで、お礼が遅くなってすみません。 早速の回答ありがとうございました。 TextとValueを見ましたが同じでした・・・ AddNewの動作がマシンAとBで異なっていることが問題でして、 BもAと同じ動作になるようにしたいのです。 ちなみにどちらもACCESS2000で、 VBEの参照設定ではDAO3.6がActiveXより上に来ています。 引き続きどなたか回答お願いします・・・お待ちしています。

関連するQ&A

  • ACCESS2021に変えたら値が代入されない

    開いてくださりありがとうございます。 MS-ACCESS2003で開発した業務システムがあります。 今回、ACCESS2021(Microsoft365)に変更したところ、不可解な動作が生じていて非常に困っています。 以下に抜粋したコードを記載します。 -- Me!税抜合計 = Me!小計 Me!消費税 = Me!消費税計 Me!伝票合計 = Me!総額 -- 伝票入力フォームから伝票明細を入力し、その合計が表示されるテキストボックスの値を作業用のテキストボックスに代入しています。 ブレイクポイントで停止させて確認すると、右側の項目には間違いなく値が入っている(マウスポインターを合わせると例えば1000と表示される)のですが、左側の項目は0のままです。 この状況は伝票明細が5行以上の時に発生します。 (4行以下の伝票では発生しません) しかもACCESS2003では問題なく動作していました。 値が代入されないのは長く開発していて初めての現象です。 ぜひアドバイスをお願いします。

  • Access Nullの評価について

    お世話になります。 Access2010 フォームを作成しました。 「登録」ボタンが押されたら、フォーム上の値の変更有無をチェックし 変更がなければ何もせず、変更があった場合のみ該当レコードを更新 します。 そこで質問ですが、  If Me.AAA = Me.BK_AAA And Me.BBB = Me.BK_BBB And Me.CCC = Me.BK_CCC Then    '変更が無ければ何もしない  Else    該当レコードにAAA~CCCの値を上書き  End If としておりますが、例えばMe.CCCとMe.BK_CCCにそれぞれNullが 入っている場合、Elseになってしまいます。 ※M.BK_CCCは変更前の値が入っている 恐らく、  If Me.AAA & "@" = Me.BK_AAA & "@" ・・・ のように文字をくっつけて評価させればよいかと思うのですが、 そもそもNullの場合は、イコールで評価出来ないのでしょうか。 ご教示の程、宜しくお願い致します。

  • アクセスのフォームで10件づつ表示する。

    初めて書き込みさせて頂きます。 アクセスのテーブルを帳票形式にて作成して10件づつ表示をさせようとすると一部のデータが表示されません。 方法としては、帳票形式で10件のみ表示出来る様にサイズを調整して「前へ」と「次へ」のボタンをつけて10件づつ表示させています。 ソースは下記の方法で 「次へ」 Private Sub コマンド13_Click() Dim rs As DAO.Recordset, i As Integer Const n As Integer = 10 Set rs = Me.RecordsetClone For i = 1 To n * 2 If rs.EOF Then rs.MoveLast Me.Bookmark = rs.Bookmark Exit Sub End If rs.MoveNext Next Me.Bookmark = rs.Bookmark For i = 1 To n rs.MovePrevious Next Me.Bookmark = rs.Bookmark rs.Close End Sub 「前へ」 Private Sub コマンド16_Click() Dim rs As DAO.Recordset, i As Integer Const n As Integer = 10 Set rs = Me.RecordsetClone For i = 1 To n * 2 If rs.BOF Then rs.MoveFirst Me.Bookmark = rs.Bookmark Exit Sub End If rs.MovePrevious Next Me.Bookmark = rs.Bookmark For i = 1 To n rs.MoveNext Next Me.Bookmark = rs.Bookmark rs.Close End Sub 以上、ご教授の程宜しくお願い致します。

  • Access 値を指定してレコード追加

    Accessのレコード追加時に、特定のフィールドに値を追加する方法が分からずに、困っております。 ご存じの方がいらっしゃいましたら、ご教授頂けましたら幸いです。 参考にしたサイト http://www.happy2-island.com/access/gogo03/capter00208.shtml バージョン Access2010 OS Windows7 Professional フォーム名:tmp税抜コンボ(テーブル名:tmp伝票No) サブフォーム:tmp税抜サブ(テーブル名:tmp税抜) 添付画像、tmp税抜コンビフォーム ◎目的 販売管理DB(SQLServer2008)からのリンクテーブルに、特定の得意先を抜出したデータに一部消費税が入っていないため消費税を入力し別のシステムへデータを渡す事が目的です。 ◎処理 可変値:納品日、伝票No、得意先CD、摘要、前のレコードからコピー 固定値:税区、商品名、数量は定数 消費税;手入力(InputBox) 上記のデータを新規で追加したいと考えており、下記のサイトを参考にしましたが、「オブジェクト変数または With ブロック変数が設定されていません」とのエラーが発生し追加出来ません。 【VBA】 Private Sub CmdB_copy_Click() 'レコードをコピーして、不要データ削除 '最後のレコードへ移動 DoCmd.GoToRecord , , acLast 'インプットボックスへ消費税額入力 Dim Tax As Long Tax = InputBox("消費税額を入力してください。") '現在のレコードから、伝票No、日付、得意先CDを取得 '変数定義 Dim rcDate As Date Dim rcDN_No As Long Dim rcTK_CD As Long '代入 rcDate = Me.納品日付 rcDN_No = Me.伝票NO rcTK_CD = Me.得意先CD Debug.Print rcDate Debug.Print rcDN_No Debug.Print rcTK_CD Debug.Print Tax 'レコードセットの定義 Dim oRS As DAO.Recordset With oRS .AddNew ←デバッグ画面では、ここでエラー表示 .Fields("納品日付").Value = rcDate .Fields("伝票No").Value = rcDN_No .Fields("得意先CD").Value = rcTK_CD .Fields("商品名").Value = "消費税" .Fields("数量").Value = 1 .Fields("単価") = Tax .Fields("税抜金額").Value = Tax oRS.Update End With Me.Requery MsgBox ("追加しました。") End Sub インティミディエイトウィンドを確認すると、納品日付、伝票No、得意先CD、消費税の値はちゃんと取得出来ているようですが、レコードセットの考え方、Withセクションの使い方、レコードの追加処理を全く理解できていないため、ご教授頂けたら幸いです。 もし、不足データがありましたら、お教え頂けたら出来る限りご提示いたします。  

  • アクセスでテキストボックスの値が空白だったら

    お世話になっております。 フォームのテキストボックスの値が0か空白だったら、レポート上に表示されるものを変えたいのですが、うまくいきません。 If [Forms]![フォーム1]![テキストボックス1].value = 0 Or [Forms]![フォーム1]![テキストボックス1].value = "" Then Me![レポート上のテキストボックス] = "無" Else [Forms]![フォーム1]![レポート上のテキストボックス1] = [Forms]![フォーム1]![テキストボックス1] & "ヶ月" End If これだと何も入っていないときに"ヶ月"と表示されてしまいます。どのように書けばよいのでしょうか? ご教授願えませんでしょうか?

  • プログラムが実行されません

    フォームは、メインフォームに業務No.(オートNo.)と日付(可視していない)と非連結で日付入力というフィールドがあり、日付でリンクしたサブフォームがありまあす。 日付入力フィールドにはDate関数でフォームを開いた時に今日の日付が表示されており、日付入力を変更すると他の日付も見られるようにしたいのですが、同じ日付を重複したくありません。 テーブルの業務No. インデックス→いいえ      日付  インデックス→いいえ に設定しておいて、 VBAで Private Sub 日付検索() Dim rs As Recordset Set rs = Me.Recordset.Clone rs.FindFirst "日付 = #" & Me.txt日付入力.Value & "#" If rs.NoMatch Then rs.AddNew rs!日付 = Me.txt日付入力.Value rs.Update Me.Requery rs.FindFirst "日付 = #" & Me.txt日付入力.Value & "#" Me.Bookmark = rs.Bookmark Else Me.Bookmark = rs.Bookmark End If rs.Close: Set rs = Nothing End Sub Private Sub txt日付入力_AfterUpdate() 日付検索 という風に書きました。 Windows98 Access2000で作成したものなのですが、作成をしたパソコンではうまく出来ます。WindowsMeでもうまく出来ます。でも違うパソコンでWindows98なのに、このプログラムは無視されて日付入力の値を変更すると値が重複されてしまいます。 なぜなのでしょうか? よろしくお願いします。

  • access2003

    テーブル T-メーカー  メーカーNo.、メーカー名 T-商品名   メーカーNo.(lookup T-メーカー)、商品No.、商品名 フォーム F-納品 F-納品サブ があり、納品がメインフォームになっていて、その中に納品サブが表示されています F-納品サブの入力時、メーカーNo.を選ぶと商品No.はメーカーNo.に属する商品だけが表示されるように制限をかけたいのですが どのようにすればよいのでしょうか? F-納品サブのメーカーNo.、商品名はコンボボックスでクエリになっています よろしくお願いします

  • アクセスのサブフォームの値のチェック

    Accessのサブファームにある、コンボボックスの値をチェックしたいので、下記のようにしてみました。 Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acSubform Then msgbox Forms!メインフォーム名!サブフォームコントロール名.Form!コントロール名 End If Next すると、サブフォームの現在選択しているコンボボックスの値しか表示されません。 現在表示されているサブフォームのコンボボックスの値すべてを表示させるにはどうすればいいのでしょうか。よろしくお願います。

  • Access レコードの移動

    ADP形式(Access2003)で社内システムを作っています。 質問なのですが・・・ 帳票形式のフォーム(商品マスタ)があります。フォームヘッダーにテキストボックス(名前:検索コード)あり、ここに商品コードを入力すると、該当するレコードへブックマークが移動します。 MDBのときは・・・   Dim ds As Recordset Set ds = RecordsetClone ds.FindFirst "[商品コード]='" & Me![検索コード] & "'" Bookmark = ds.Bookmark 以下省略 これで動作したのですが、ADPではエラーになります。 ADOになっているからでしょうか?

  • Access 2003 でフォームフィルターがかかりません。

    Access 2003 でフォームフィルターがかかりません。 どなたか助けてください。 アクセス初心者です。 フォームの詳細欄にチェックボックス(フィールド名:伝票チェック)を配置しております。 チェックの入っていないものを表示させたいです。 フォームヘッダーのオプショングループ(フレーム67)に オプションボタン0-オプション値0と オプションボタン2-オプション値2 の2個のオプションボタンを配置してあります。 クリック時のイベントプロシージャに以下のコードを書きました。 Private Sub フレーム67_Click() If Me!フレーム67 = 0 Then Me.Filter = 伝票チェック = 0 Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = True End If End Sub 実行時エラーは出ませんが、データが何も表示されません。 どうすればいいのでしょう??? どなたかお願いします。

専門家に質問してみよう