投稿者 るきお  (社会人) 投稿日時 2013/7/2 12:48:06
>読み込む時点でNULLだったら、アップデート後もNULLにしたいです。
Nullで更新するSQL文は次のようになります。
update テーブル set 列名 = Null where  条件


ですから、TextBoxの内容が空文字(長さ0の文字列)の場合、Nullで更新、そうでない場合入力されている値で更新するプログラムは次のようになります。
If Len(TextBox1.Text) = 0 Then
    Dim sql As String = "update テーブル set 列名 = Null where  条件"
    'SQL実行 
Else
    Dim sql As String = "update テーブル set 列名 = '" & TextBox1.Text & "' where  条件"
    'SQL実行 
End If


なお、Nullかどうか判断するところでHARUさんは、
If IsDBNull(【データベースの項目】.ToString) = False Then

と書かれていますが、これだと、 ToStringの戻り値がNullかどうか検査していることになりますから、
次のように書くのが正しいと思います。
If IsDBNull(【データベースの項目】) = False Then

もちろん【データベースの項目】の型がNullを保持できていることが前提です。

できましたら実際に使っているプログラムをそのまま貼り付けていただいた方が正確な会話ができます。

スペース含めて40文字にされてしまう件は、もちださんの言うようにcharやncharなどを使って固定長で定義しているのではないかと思います。
だとすると、Nullの話とは別にどこかでTrimしたほうがいいかも知れません。

なお、例であげたSQLは説明を簡単にするために不具合を承知でシンプルなまま載せています。
この例をそのまま使うとTextBoxに ' を入力された場合などエラーになるばかりか、データベースに不正アクセスされて情報を引き出されるかもしれません。またパフォーマンス上もあまりよくありません。解決策として実際のプログラムではパラメーター化クエリを使用されることをお奨めします。
ごく少人数が使う致命的でないシステムならこのままリリースでも許される…かもしれませんが…。