• 締切済み

「タイプ初期化子が例外をスローしました」エラー何?

ネット検索で調べましたが、どうしてもわからないので、質問いたします。 VB2010ですが、デバッグで起動すると「タイプ初期化子が例外をスローしました」というエラーが出てしまい、プログラムが起動しません。 ご教授のほどよろしくお願いいたします。 1.スタートアップフォーム    ○frmMENU    ○LOADするときに標準モジュールを呼び出します。     その呼び出し文でエラーになります。 Private Sub frmMENU_Load(ByVal eventSender As System.Object, ByVal eventArgs As  System.EventArgs) Handles MyBase.Load gINIT()  ← ここでエラーになります Me.Text = gSysName Show() End Sub 2.標準モジュール Public Sub gINIT() gSysName = "システム" DS = "Provider=""Microsoft.Jet.OLEDB.4.0"";" DS &= "Data Source=""" gMDB = "C:\MDB\ABC.MDB""" End Sub

noname#134268
noname#134268

みんなの回答

回答No.1

クラスのSharedなフィールドの初期化に例外が発生した場合や, クラスのSharedなコンストラクタの実行時に例外が発生した場合に, System.TypeInitalizationExceptionはCLIによって投げられます。 ちなみに,.NET Framework的にはVBのModuleは単に全メンバがSharedなクラスなので, Moduleにフィールドを持たせて初期化に失敗すると,TypeInitializationExceptionが発生します。 この時,InnerExceptionプロパティに発生した例外が含まれます。 ref) http://msdn.microsoft.com/ja-jp/library/system.typeinitializationexception.aspx このため,TypeInitializationExceptionではなく,InnerExceptionプロパティの情報から, 例外が発生した原因を突き止める必要があります。 # 例外オブジェクトの型とかスタックトレースとかは重要な情報。

noname#134268
質問者

お礼

大変ありがとうございました。 お蔭様で解決に至りました。

関連するQ&A

  • focusメソッドを使ってもカーソルが点滅しない

    フォームをロードし、下記のようにしてもカーソルが点滅しません。その解決方法を教えてください。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Focus() End Sub

  • 「Me」を「Form1」にするとエラーになる理由

    VB2008です。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Text = "a" Form1.Text = "a" ’←「Form1.Text」に波線ができる。 End Sub End Class というように、 「Me」を「Form1」にすると 「既定のインスタンスからそれ自体を参照できません。'Me' を使用してください。」 となります。 VBAなら「Me」を「Form1」にしてもエラーにならないのに、 どうしてVBだとエラーになるのでしょうか?

  • エラーでつまってます・・・お助け下さい

    VS2003.NETで開発中の初心者です。 以下のコード(Form1.vb)を実行すると次のエラーがポップアップされ“oADP.Fill(oDS, "ROOT")”のラインで止まります。 <エラー> 'System.Data.OleDb.OleDbException' のハンドルされていない例外が system.data.dll で発生しました。 どこがおかしいのかわかりません。 詳しい方がいましたら、ご教授下さいませ。 ---------------------------- Imports System.Data.OleDb Public Class Form1  Inherits System.Windows.Forms.Form  Private oConn As OleDb.OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0" & ";Data Source=..\USER.mdb") 「Windows フォーム デザイナで生成されたコード」   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load    '--DataAdapterの設定    Dim oADP As OleDb.OleDbDataAdapter    oADP = New OleDb.OleDbDataAdapter("SELECT *FORM TALK WHERE Node=0 ORDER BY No", oConn)    '--DataSetの設定    Dim oDS As New DataSet    oADP.Fill(oDS, "ROOT")        ・        ・        ・ ----------------------------

  • datagridviewでたまに例外・・

    モジュールからフォームの関数を呼び出し時にたまに以下の例外が発生しており、 なぜ例外が発生するのか原因がわからず困っています。 オブジェクト参照がオブジェクト インスタンスに設定されていません。 場所 System.Windows.Forms.DataGridViewIntLinkedList.Remove(Int32 integer) 場所 System.Windows.Forms.DataGridView.SetSelectedRowCore(Int32 rowIndex, Boolean selected) 場所 System.Windows.Forms.DataGridView.ClearSelection() 場所 System.Windows.Forms.DataGridView.set_SelectionMode(DataGridViewSelectionMode value) 以下のようなフォームがありgridset()はタイマーで動いているモジュールの関数より呼び出されます。 Public Class frmTest Private Sub frmTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load gFrmTest = Me End Sub Public Function gridset() dataGridView1.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect ☆例外発生箇所    ・    ・ End Function End Class Module Modtest //以下はタイマーで何回も呼ばれる関数 Public Function aaa() As Integer gfrmTest.gridset() End Function End Module 環境はvb.net 2008です。 ご教示いただけますと助かります。 よろしくお願いします。

  • Elseifのコードが分かりません。(至急)

    急ぎのため再度の質問失礼します。 3つの数字すべてが7のとき、メッセージ1を出し、 どれか2つだけが7のときは、メッセージ2を出し、 どれか1つだけが7のときは、メッセージ3を出し、 どこにも7が含まれていないときは、メッセージ4を出すようにEndifを使って書きたいのですが、正しいコードを教えて下さい。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Randomize() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click PictureBox1.Visible = False Label4.Visible = False Label1.Text = CStr(Int(Rnd() * 10)) Label2.Text = CStr(Int(Rnd() * 10)) Label3.Text = CStr(Int(Rnd() * 10)) If End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Sub Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click End Sub Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click End Sub End Class よろしくお願いします。

  • このコードはどこが間違っていますか?(至急)

    急ぎのため再度の質問失礼します。 (zのn乗)-(xのn乗+yのn乗)の計算をさせて、答えが0のときにメッセージを表示したいのですが、どのようなコードを書けばいいのでしょうか? Option Explicit On Public Class Form1 Dim x As Long Dim y As Long Dim z As Long Dim n As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click x = TextBox1.Text y = TextBox2.Text z = TextBox3.Text n = TextBox4.Text TextBox5.Text = (z ^ n) - (x ^ n + y ^ n) If (TextBox5 .Text= 0) Then Label6.Visible = True End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Label6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.Click End Sub End Class このコードだと答えが必ず-1になってしまうのですが、どこを直せばいいのでしょうか? 正しいコードを教えて下さい。 よろしくお願いします。

  • System.Timers.Timer について

    下記のようなコードで動いていますが、 TestFunc に独自の引数を渡したいと考えています。 どうすれば実現できるでしょうか? 引数以外(メンバ変数等)では対応できていますので、 引数の方法だけ教えてほしいです。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load timer = New System.Timers.Timer() AddHandler timer.Elapsed, New ElapsedEventHandler(AddressOf TestFunc) timer.Interval = 1000 timer.Start() End Sub Public Sub TestFunc(ByVal sender As Object, ByVal e As ElapsedEventArgs) Console.WriteLine(DateTime.Now) End Sub

  • ドラッグドロップ(AllowDrop)について

    Form1にドラッグドロップ機能を導入しようと思い AllowDropプロパティをTrueにしてDragDropイベントとDragEnterイベントを記述しました。 実際にデバックしてみるとうまく機能して安心したのですが 後で、bin/debug/AAA.exeを直接クリックしてみるとなぜか機能しません。 MyBase.LoadイベントにMyBase.AllowDrop=Trueと記述してみたいのですがダメでした。 何か設定が間違ってるのでしょうか? ぜひご回答お願いします。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load   MyBase.AllowDrop = True End Sub Private Sub drag_drop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop   Dim list As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())   For Each a In list      MsgBox(a)   Next End Sub Private Sub drag_enter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter   e.Effect = DragDropEffects.Copy End Sub

  • データベースを更新したい(VB2008)

    VB2008でつくったアプリケーションでAccessのデータを更新したいです。DataGridView1でデータを表示させ更新ボタン押下時にデータ(Accessのテーブル)を更新したいです。 DataGridView1でデータを表示することはできましたが、「更新」押下に更新されません。 Accessのテーブル名は「01データです」 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me._01データTableAdapter.Fill(Me.年賀状DataSet._01データ) End Sub Private Sub 更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 更新.Click With DataGridView1 .Update()     End With     MsgBox("更新しました") End Sub

  • VB.netで図形描画ができません^^;

    初心者質問で申し訳ないです。 VB.net(Visual Studio 2005)で図形描画を行っています。 ボタン押下で図形(四角形)を描画する方法は理解できたのですが 起動時に表示するほうほうが分かりません。 どなたか教えてもらえないでしょうか? Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim g As Graphics g = PictureBox1.CreateGraphics() g.DrawRectangle(Pens.Black, 100, 50, 100, 100) g.Dispose() End Sub 上記のようにLoadから読み込むようにしましたが描画されませんでした。 よろしくお願い致します><

専門家に質問してみよう