φ(..) ビボ~6 φ(..)

主にAccess、VBAに関する備忘録

0x00000d1 ブルースクリーン STOPエラー

DataAdapter(DataTable)でレコードの更新をするサンプル

        Using cn As New SqlConnection(mConnectionString)
            cn.Open()

            Using cmd As New SqlCommand
                cmd.Connection = cn

                Dim SQL As New StringBuilder

                'INDEX列を含むコマンド文字列でないとダメかも...
                SQL.Append("SELECT * FROM TABLE_A")
                SQL.Append(" WHERE FLG_2 = @PARA1")
                SQL.Append(" ORDER BY FLD_1")

                cmd.CommandText = SQL.ToString

                cmd.Parameters.AddWithValue("@PARA1", 1)
                
                Using ad As New SqlDataAdapter(cmd)

                    '****↓必要↓****
                    ad.MissingSchemaAction = MissingSchemaAction.AddWithKey
                    
                    Dim bd As New SqlCommandBuilder(ad)
                    '****↑必要↑****

                    Dim tb As New DataTable

                    Try
                        ad.Fill(tb)

                        For i As Integer = 0 To tb.Rows.Count - 1
                            tb.Rows(i)("FLD_3") = "値"
                        Next i

                        ad.Update(tb)

                    Catch ex As Exception
                        MessageBox.Show(ex.Message, "エラー")
                    End Try

                End Using

            End Using
        End Using

MissingSchemaAction 列挙体 (System.Data)

バリアント型でない変数に Null 値を代入しようとしました。

[現象]

値要求:いいえ」のフィールドであるのに、「バリアント型でない変数に Null 値を代入しようとしました。」とエラーが出る。

[再現]

  1. 「値要求:はい」のフィールドを持つ、ODBCリンクのテーブルを開く
  2. 名前を付けて保存
  3. 「値要求:はい」のフィールドを「値要求:いいえ」に変更し、保存
  4. フィールドをブランクにしようとするとエラーが出る

[対策]

  1. テーブルデザイナーで、該当フィールドを切り取り
  2. 貼り付け

ACCESSのテーブルデザイナーから操作できない秘密のプロパティがあるということでしょうか~

パッケージソリューションの「製品コード」「アップグレードコード」

「保存されているテンプレートファイルからウィザード設定を読み込む」ボタンから、
以前に保存しておいたウィザード設定を読み込んで、別のパッケージを参照作成しようとすると、
詳細オプションの「製品コード」「アップグレードコード」まで読み込まれてしまい、
元となったパッケージがインストールされているPCに、参照作成したパッケージをインストールすることができなくなってしまう。

  1. まずは、ウィザード設定を読み込まずに詳細オプションのページまで進め、「製品コード」と「アップグレードコード」をメモ帳などにコピペしておく。
  2. 次に、以前のウィザード設定を読み込んで新規パッケージ用に書き換え、「製品コード」「アップグレードコード」にメモっておいたコードを貼り付ける。

USB外付けHDDを付けたままWindowsを起動できない

[環境]

IBM xSeries 206m
Windows Server 2003 SP2

アイ・オー・データ USB2.0/1.1接続 外付型ハードディスク 1.0TB
HDCA-U1.0CKC

[現象とか対応とか]

1. Windows Updateの自動再起動後、再起動を繰り返していたため、外付けHDDを取り外した

2. ブルースクリーンを頻発するようになった

f:id:ha2:20130411103558j:plain

イベントログに、以下の記録

イベントの種類: エラー
イベント ソース: System Error
イベント カテゴリ: (102)
イベント ID: 1003
説明:
エラー コード 000000d1、パラメータ1 000000a0、パラメータ2 d0000007, パラメータ3 00000000、パラメータ4 f727b5a7.

Adp94xx.sys Adaptec Windows SAS/SATA Storport Driver
DRIVER_IRQL_NOT_LESS_OR_EQUAL STOP: 0x000000D1

⇒ 初期設定のまま使用していたので、フォーマット形式がFATになっており、NTFS形式でフォーマットし直した。
  FAT形式では4G以上のデータは保存できないにもかかわらず、保存しようとしたデータが大きすぎたため異常をきたしたのではないか…。

    I-O DATA ハードディスクフォーマッタ

ブルースクリーンの Adp94xx.sys については納得の行く情報を得られず、
  Windows SAS/SATA Storport Driverであることを踏まえ、Microsoftサポートの更新プログラムを適用してみた。

    Windows Server 2003 用の記憶域ドライバ Storport の更新版について

  適用後、やはりブルースクリーンで落ちてしまったが、それ以降は発生せず、イベントログも記録されていない。しばらく様子見。

⇒ 相変わらず、HDDを接続したままでは起動できないので、BIOSの Boot Sequence からRemovableをはずしたら、今度はOS not found でループ

⇒ I-O DATAのQ&Aに回答が載っていた…。

<現象>


本製品をパソコンのUSBポートに装着したままでパソコンを起動すると、Windowsが起動し始める前にパソコンの起動が止まる。

・本製品をパソコンに装着しない状態であれば、パソコンは正常に起動する。
・Windowsが起動してから本製品をパソコンに装着すると正常に認識する。


<対処>


パソコン本体のBIOSセットアップメニューの設定内容をご確認ください。
BIOSセットアップメニューに「USB Legacy Support」という項目があれば、この項目を「Disabled」(無効)に設定していただき、改善しないかお試しください。

「USB Legacy Support」は、USB接続のキーボードやマウスをBIOSレベルで認識できるようにする設定項目です。
この項目を無効にすることによって、USB接続のキーボードやマウスは、Windowsが起動してから認識されることになります。
そのため、Windowsが起動する前であるBIOSメニューの表示などの操作はできなくなりますので、ご注意ください

PS/2接続(丸い端子)のキーボードやマウスをお使いの場合は、「USB Legacy Support」を無効にしていただいてもキーボードやマウスの動作に影響はございません。

※パソコンの機種によってはBIOSセットアップメニューの項目名が「USB Legacy Support」とは違い、似たような別の項目名の場合がございます。
 パソコン本体の取扱説明書で同様な機能の設定項目がないかご確認ください。詳細はパソコンメーカー様にご確認ください。

BIOSセットアップメニューは、パソコン起動時に特定のキーを押すと表示されます。パソコンの機種によってキーが違いますので、表示方法についてはパソコン本体の取扱説明書をご確認ください。

パソコンに本製品をUSBで装着したままだとWindowsが起動しないのですが?

f:id:ha2:20130411102328j:plain