タイトル通り『オブジェクト参照がオブジェクトインスタンスに設定されていません』というエラーが発生し、全く僕の脳では解決しないので、ここに質問させて頂きます。
VB.netでフォームロード時に、Accessに登録されている件数分だけテキストコントロールを動的に配置(配列処理をしています)、そこにAccessからデータを取り込みます。
追加ボタンで一件分のテキストコントロールを一番下の行になるよう配置。そこにユーザがデータを入力し、更新ボタンを押すことで、Access上にINSERTする。
というような処理です。
で、INSERTはされるのですが、その後textboxの中身を配列の最初から確認しようしたり、データを入れようとしたり、空にしようとしたりすると上のエラーが表示されます。
'テキストの配列'
Private field_text(,) As System.Windows.Forms.TextBox
Sub s_insert()
'
’ 更新ボタン時の処理
'
Const strinsert As String = "INSERT INTO 社員マスター (SNO,SNAME) VALUES (@sCode,@sName)"
Dim oConn As New System.Data.OleDb.OleDbConnection
Dim oCommand As New OleDbCommand
Dim i As Integer
Dim j As Integer
Dim insert_ok As Integer
'DB接続のための処理(省略)
'SQL文の設定
oCommand.CommandText = strinsert
insert_ok = 0
oCommand.Parameters.Add(New OleDbParameter("@sCode", OleDbType.Char, 10))
oCommand.Parameters("@sCode").Value = field_text(更新する行の値, 0).Text
oCommand.Parameters.Add(New OleDbParameter("@syainName", OleDbType.Char, 20))
oCommand.Parameters("@sName").Value = field_text(更新する行の値, 1).Text
insert_ok = oCommand.ExecuteNonQuery() 'SQL文を実行'
If insert_ok > 0 Then
MessageBox.Show("新規登録完了", "メッセージ")
End If
'DB接続を閉じる処理(省略)
For i = 0 To 登録行数 - 1
For j = 0 To 1
f_text(i, j).Text = "" ←ここでエラー
Next j
Next i
End Sub
随分と省いてあり、意味の分からない部分が多数あると思いますが、何か気付いたことや他の部分を書け!という場所があれば教えてください。
一日やっても解決せずに、本当に困り果てています。
タイトル通り『オブジェクト参照がオブジェクトインスタンスに設定されていません』というエラーが発生し、全く僕の脳では解決しないので、ここに質問させて頂きます。
VB.netでフォームロード時に、Accessに登録されている件数分だけテキストコントロールを動的に配置(配列処理をしています)、そこにAccessからデータを取り込みます。
追加ボタンで一件分のテキストコントロールを一番下の行になるよう配置。そこにユーザがデータを入力し、更新ボタンを押すことで、Access上にINSERTする。
というような処理です。
で、INSERTはされるのですが、その後textboxの中身を配列の最初から確認しようしたり、データを入れようとしたり、空にしようとしたりすると上のエラーが表示されます。
'テキストの配列'
Private field_text(,) As System.Windows.Forms.TextBox
Sub s_insert()
'
’ 更新ボタン時の処理
'
Const strinsert As String = "INSERT INTO 社員マスター (SNO,SNAME) VALUES (@sCode,@sName)"
Dim oConn As New System.Data.OleDb.OleDbConnection
Dim oCommand As New OleDbCommand
Dim i As Integer
Dim j As Integer
Dim insert_ok As Integer
'DB接続のための処理(省略)
'SQL文の設定
oCommand.CommandText = strinsert
insert_ok = 0
oCommand.Parameters.Add(New OleDbParameter("@sCode", OleDbType.Char, 10))
oCommand.Parameters("@sCode").Value = field_text(更新する行の値, 0).Text
oCommand.Parameters.Add(New OleDbParameter("@syainName", OleDbType.Char, 20))
oCommand.Parameters("@sName").Value = field_text(更新する行の値, 1).Text
insert_ok = oCommand.ExecuteNonQuery() 'SQL文を実行'
If insert_ok > 0 Then
MessageBox.Show("新規登録完了", "メッセージ")
End If
'DB接続を閉じる処理(省略)
For i = 0 To 登録行数 - 1
For j = 0 To 1
f_text(i, j).Text = "" ←ここでエラー
Next j
Next i
End Sub
随分と省いてあり、意味の分からない部分が多数あると思いますが、何か気付いたことや他の部分を書け!という場所があれば教えてください。
一日やっても解決せずに、本当に困り果てています。