• 締切済み

Accessですでに入っている値をNULLにしたい場合にVBAでどのように書けばよいのでしょうか?

Access2003とPostgreSQL8を使っています。 AccessをGUI環境としてデータリンクでテーブルを開いています。 Accessでフィールドに対してNULL(空文字でなく)をセットする方法が知りたいです。基本的に入力しなければ良いのですが、すでに入っている値をNULLにしたい場合に手で変更する方法とVBAプログラムで変更する方法が知りたいです。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

手とVBAの両方 更新クエリを作って走らせる VBA 値の代入

関連するQ&A

  • Accessで値がnullの場合は計算せずにnullをかえす方法

    Accessについて、教えてください。 クエリで抽出しているときに、フィールド1とフィールド2の数値を掛け算した値をフィールド3に表示したいと思っています。(小数点1位まで表示) フィールド1とフィールド2は値がnullの場合もありますが、この場合は「0」として扱うのではなく、そのまま計算結果もnullにしたいと思っています。 最初は単純に フィールド3: ROUNDMS2(ROUNDMS([フィールド1],1)*ROUNDMS([フィールド2],1),1) とクエリに表記したのですが、この場合「フィールド1」や「フィールド2」がnullの場合は#ERRORが表示されました。 次に、IFでフィールド1やフィールド2がnullの場合は計算せずにnullをかえしてもらおうと下記のような文をつくりました。 フィールド3: IIf([フィールド1]=Null,Null,IIf([フィールド2]=Null,Null,ROUNDMS2(ROUNDMS([フィールド1],1)*ROUNDMS([フィールド2],1),1))) これでもやっぱり#ERRORが表示されます。 いろいろと検索したのですが、nullを0として扱う例は多数見つけられましたがnullのまま扱う例が見つけられませんでした。 勘違いしているところがあるかもしれませんが、アドバイスよろしくお願いいたします。

  • アクセスVBAで

    いつもお世話になっております。 アクセスでCSVからインポートするテーブルで下記のようなフィールドがあります。 受注NO| 枝番| コード 123  | 0  | NULL 123  | 1  | 24 124  | 0  | 25  ・     ・     ・  ・     ・     ・  ・     ・     ・  ・     ・     ・ というようにコードがNULL値の場合同じ受注番号のものからコードを拾い、値を代入をするというVBAを組みたいと思っているのですが、なかなか上手く動きません。 大変お手数ですがどなたかお知恵を拝借できればと思います。

  • ACCESS2000のテーブルのNULL

    教えてください!! ACCESS2000のテーブルにある、フィールドのデータの中にある”NULL”を数字に置き換える方法を教えてください。置き換えるのは、いくつもNULLがあっても一つでいいのですが・・・。 よろしく、お願いいたします。

  • AccessのNULL値とSQL ServerのNULL値で違いはありますか?

    SQL ServerのテーブルをAccessにODBCでリンクを貼っています。 AccessでSQL ServerのNULL項目を表示した際に挙動がおかしくなったので… そこでSQL ServerのテーブルのNULL値を空文字("")にしたら正常になりました。 AccessのNULL値とSQL ServerのNULL値で違いはありますか? ご存知の方がいましたらご教授お願いします。

  • NULL値を含む場合のフィルタ

    アクセスです。 テーブルに フィールド1 フィールド2 A    B       B  C       C と入ってるとします。 フィールド2についてはNULL値のレコードもあれば、 値が入ってる場合もあります。 このテーブルをフォームにひもづけていて、(帳票フォームにしています) フォームヘッダーにテキストボックス2つとコマンドボタンがあり Private Sub コマンド_Click() Me.Form.Filter = _ "フィールド1 like '*" & Me.テキスト_1.Value & "*'" & " and " _ & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" Me.Form.FilterOn = True End Sub としたときに、レコードのフィールド2に文字が入ってる場合は、抽出できるのですが、 フィールド2がNULLの場合は、1件もヒットしません。 テキスト_1にはAを入れて テキスト_2には何も入れないで検索してみると、1件もヒットしませんが、 テキスト_1にBを入れて検索すると、Bのレコードが抽出されます。 もちろん テキスト_1もテキスト_2もBをいれても、Bのレコードが抽出されます。 VBAコードで & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" としてるので、NULL値でも抽出されると思ったのですがなぜ何も抽出されないのでしょうか? ワイルドカードでnull値も検索されないのでしょうか? テーブルのフィールド2のデータをNull値ではなく、””にしたら、問題なく抽出されましたが データのNull値はNull値のままにして、空白などの文字には置き換えたくないです。 (というか、すべてのNULL値に空白を入れる作業が大変なのでやりたくないです。 実際のフィールド数は50個くらいあります) よろしくお願いします。

  • Access2000 VBA 配列にNull値を

    お世話になります 今、プログラム作っていますが、プロシージャー内の配列に連続した2種類のデータから片方だけそのまま入力させ、不要な1種類のデータをNull値にして取り込みたいと思っています。 Aの種類のデータだけを取り込みソートし、Minのデータを取り出したいのです。 vbNullを入力させると 0,1の値が入ってしまいソートがうまく行きません。 また、 Access 2000のVBAでは I F条件から強制的に抜け出ることはできないようです。 For 文からはできるのですが、私が方法を知らないのでしょうか? 配列にNull値を入力させ方、又は、I F条件から強制的に抜けださせる方法をご存知のかたが いましたら教えて下さい。 よろしくお願いします。

  • access vbaでクエリデータの中にNULLがあるときにメッセージを表示する方法

    access vbaでデータベースの商品マスタテーブル(リンクしたもの)と手動で取り込んだ受注テーブルを比較してマスタに登録のない品番をNULLとして表示するクエリを作ったのですが、vbaを使って「品番チェック」というボタンを押しただけで受注テーブルにNULLがあるか否かをMsgboxで表示させたいんですが、詳しい書き方がわかりません。 どなたか教えていただけないでしょうか。 出来ればNULLになった品番がメッセージボックスにでればベストなんですが・・・ よろしくおねがいします。

  • Access VBAで int型にnullを入れる方法について

     Access で作ったテーブルの数値型のフィールド「金額」にnullを入れたいと思い、四苦八苦しています。  以下のソースを書いたのですが、値には「0」が入ってしまい、nullが挿入されません。 Dim a As Long Dim SQL1 As String If IsNull(Me.摘要_会員番号) = True Then IsNull (a) Else a = Me.摘要_会員番号 End If SQL1 = "UPDATE 個人情報入金 SET 個人情報入金.金額 = " & a & ";" DoCmd.RunSQL SQL1  その他、a=null や、a=''をやってみたのですがこれでは入らず、String型ではないので、スペースも入りません。  nullで無くても、目で見てデータが見えない状態であればいいのですが、そのようにupdateをかける方法をしっている方、是非ご教授をお願いします。

  • VBAにテーブルの値の記入法

    Access2000を使用しています。 VBAにテーブルのフィールドを書く際、どのように記述すればよいでしょうか? テーブル 基本情報 フィールド 充実度 VBA [基本情報]![充実度].value こんな感じでやるとエラーが出ます。 正しい記述法を教えてください。

  • VBAでその月の数の一番多い値を取得したいのですが

    フィールド1 フィールド2 2016/08/07 52.6 2016/08/06 52.2 2016/08/05 52.2 2016/08/04 52.9 2016/08/03 53.6 2016/08/02 53.3 2016/08/01 53.1 と言うデータがテーブルには入っています。 アクセスのVBAでその月の数の一番多い値を取得したいのですが strMAX = DMax("[フィールド2]", "テーブル1", "[フィールド1] = '" & ??? & "'") 上記の???の部分はどうすればいいでしょうか? 日付をフィルタするのではなく 「8月の中で一番多い値」を指定するにはどうすればいいでしょうか? 結果としては、53.6を取得したいです。

専門家に質問してみよう