質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

2220閲覧

DataGridViewにACCESSのデータを表示させたいです。

rarara_123

総合スコア11

DataGrid

GUIの一種であり、データを表の形式でみることが可能です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/04/09 02:39

編集2021/04/09 02:54

前提・実現したいこと
ACCESSで作成したデータをDataGridViewに表示させたいです。
エラーはでていません。

該当のソースコード
下記は全体のソースコードです。

Imports Microsoft.Office.Interop Imports System.Data.OleDb Public Class Form1 Dim str, syukkinJikan, syukkinHun, taikinJikan, taikinHun As Integer 'パスワード Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged End Sub 'パスワード入力規制 Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating If System.Text.RegularExpressions.Regex.IsMatch(TextBox1.Text, "[^0-9]+") Then MsgBox("数字以外の文字は入力できません。") e.Cancel = True End If End Sub '日付 Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged End Sub '出勤時間(時) Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged End Sub '出勤時間(分) Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged End Sub '退勤時間(時) Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged End Sub '退勤時間(分) Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '変数宣言 Dim ex As New Microsoft.Office.Interop.Excel.Application Dim sh As Microsoft.Office.Interop.Excel.Worksheet Dim wb As Microsoft.Office.Interop.Excel.Workbook 'ファイルオープン wb = ex.Workbooks.Open("C:\Users\k_sat\Desktop\給料計算.xlsx") sh = wb.Sheets("Sheet1") '給料をエクセルに表示させる sh.Range("F3").Value = TextBox2.Text wb.Save() ex.Quit() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'SQL作成 Dim resultDt As New DataTable Dim sql = New System.Text.StringBuilder() sql.AppendLine("SELECT") sql.AppendLine(" * ") sql.AppendLine("FROM ID給料") 'Access接続準備 Dim command As New OleDbCommand Dim da As New OleDbDataAdapter Dim cnAccess As OleDbConnection = New OleDbConnection cnAccess.ConnectionString = My.Settings.アクセス 'Access接続開始 cnAccess.Open() Try command.Connection = cnAccess command.CommandText = sql.ToString da.SelectCommand = command 'SQL実行 結果をデータテーブルに格納 da.Fill(resultDt) Catch ex As Exception Throw Finally command.Dispose() da.Dispose() cnAccess.Close() End Try 'データテーブルの結果を表示 For rowindex As Integer = 0 To resultDt.Rows.Count - 1 For colindex As Integer = 0 To resultDt.Columns.Count - 1 Console.Write(resultDt.Rows(rowindex).Item(colindex).ToString & " ") Next Console.WriteLine() Next End Sub Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick End Sub '確認ボタン(コンボボックスのデータを取得) Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click syukkinJikan = ComboBox1.SelectedItem syukkinHun = ComboBox2.SelectedItem taikinJikan = ComboBox3.SelectedItem taikinHun = ComboBox4.SelectedItem '稼働時間(残業、深夜)計算 Dim kadouJikan, kadouHun As Integer If taikinJikan > syukkinJikan Then kadouJikan = taikinJikan - syukkinJikan ElseIf taikinJikan < syukkinJikan Then kadouJikan = taikinJikan - syukkinJikan + 24 End If If taikinHun > syukkinHun Then kadouHun = taikinHun - syukkinHun ElseIf taikinHun < syukkinHun Then kadouHun = taikinHun - syukkinHun + 60 End If Dim kyuukeiJikan, kyuukeiHun As Integer If kadouJikan < 6 Then kyuukeiHun = kadouHun kyuukeiJikan = kadouJikan ElseIf kadouJikan >= 6 And kadouJikan < 8 And kadouHun > 45 Then kyuukeiHun = kadouHun - 45 kyuukeiJikan = kadouJikan - 1 ElseIf kadouJikan >= 6 And kadouJikan < 8 And kadouHun < 45 Then kyuukeiHun = kadouHun - 45 + 60 kyuukeiJikan = kadouJikan - 1 ElseIf kadouJikan >= 8 Then kyuukeiHun = kadouHun kyuukeiJikan = kadouJikan - 1 End If Dim ZangyouJikan As Integer If kyuukeiJikan < 8 Then ElseIf kyuukeiJikan >= 8 Then ZangyouJikan = kyuukeiJikan - 8 End If Dim kyuuyo, kyuuyoZan, kyuuyoKakutei As Integer If kyuukeiJikan < 8 Then kyuuyoKakutei = (kyuukeiJikan * 1500 + (kyuukeiHun / 60) * 1500) ElseIf kyuukeiJikan >= 8 Then kyuuyo = (8 * 1500 + (kyuukeiHun / 60) * 1500) kyuuyoZan = ((kyuukeiJikan - 8) * 1500 * 1.25 + ((kyuukeiHun / 60) * 1500 * 1.25)) kyuuyoKakutei = kyuuyo + kyuuyoZan End If '一日分の給料を表示 TextBox2.Text = kyuuyoKakutei '変数宣言 Dim ex As New Microsoft.Office.Interop.Excel.Application Dim sh As Microsoft.Office.Interop.Excel.Worksheet Dim wb As Microsoft.Office.Interop.Excel.Workbook 'ファイルオープン wb = ex.Workbooks.Open("C:\Users\k_sat\Desktop\給料計算.xlsx") sh = wb.Sheets("Sheet1") '出勤時間、退勤時間をエクセルに表示させる sh.Range("A3").Value = DateTimePicker1.Text sh.Range("B3").Value = ComboBox1.SelectedItem sh.Range("C3").Value = ComboBox2.SelectedItem sh.Range("D3").Value = ComboBox3.SelectedItem sh.Range("E3").Value = ComboBox4.SelectedItem wb.Save() ex.Quit() End Sub '給料 Private Sub Label10_Click(sender As Object, e As EventArgs) Handles Label10.Click End Sub '給料 Public Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged End Sub End Class

下記は問題と思われる部分(68行目~112行目)のソースコードです。

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'SQL作成 Dim resultDt As New DataTable Dim sql = New System.Text.StringBuilder() sql.AppendLine("SELECT") sql.AppendLine(" * ") sql.AppendLine("FROM ID給料") 'Access接続準備 Dim command As New OleDbCommand Dim da As New OleDbDataAdapter Dim cnAccess As OleDbConnection = New OleDbConnection cnAccess.ConnectionString = My.Settings.アクセス 'Access接続開始 cnAccess.Open() Try command.Connection = cnAccess command.CommandText = sql.ToString da.SelectCommand = command 'SQL実行 結果をデータテーブルに格納 da.Fill(resultDt) Catch ex As Exception Throw Finally command.Dispose() da.Dispose() cnAccess.Close() End Try 'データテーブルの結果を表示 For rowindex As Integer = 0 To resultDt.Rows.Count - 1 For colindex As Integer = 0 To resultDt.Columns.Count - 1 Console.Write(resultDt.Rows(rowindex).Item(colindex).ToString & " ") Next Console.WriteLine() Next End Sub

自分で調べたことや試したこと
参考にしたサイト
https://www.fenet.jp/dotnet/column/%e8%a8%80%e8%aa%9e%e3%83%bb%e7%92%b0%e5%a2%83/928/

ACCESSのデータをdatagridviewに表示させるためにボタンを押下すると、
画面左下に「System.EnterpriseServices.Wrapper.dllのシンボルを読み込んでます」
と表示されます。

使っているツールのバージョンなど補足情報
ACCESSのバージョン2016
Windows10の64ビット
WindowsForms
Visual Studio2019
NET Framework 4.8
AccessDatabaseEngine.exeインストール済です。

上記のコードではDataGridViewに表示されず詰んでおります。
ご教示よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2021/04/09 02:54

デバッグでステップ実行してどこに問題があるか位は確認しているのですか?
rarara_123

2021/04/09 02:59

デバッグをしてもどこにも引っ掛かりません。
sazi

2021/04/09 03:08

引っ掛からないとは? ブレークポイントを設定し、ステップ実行すれば、どこで意図通りの動きをしていないかは分かるはずですが?
退会済みユーザー

退会済みユーザー

2021/04/09 03:52

> wb = ex.Workbooks.Open("C:\Users\k_sat\Desktop\給料計算.xlsx") タイトルには Access と書いてありますがファイルは Excel のようですし、Microsoft.Office.Interop とかインポートしてるし、一体何なのでしょう? どこかにあったサンプルコードなどをあちこちから訳が分からないままコピペしているように見えますけど・・・ そうでなければ、そのあたりをきちんと説明してください。質問者さん自身も訳が分からないものを見せられても答えようがないですよ。
rarara_123

2021/04/09 04:09

Visusal Studioに日付、出勤時間、退社時間、給料を入力したデータをいったんエクセルにエクスポートしております。そのエクスポートしたデータをACCESSに外部データとして取り込んでます。 今回は上記とは別に、Visual StudioのDataGridViewにACCESSのデータを表示させたいと考えております。
YAmaGNZ

2021/04/09 05:36

どこでDataGridViewにデータをセットしているのでしょうか?
退会済みユーザー

退会済みユーザー

2021/04/09 06:00 編集

> Visusal Studioに日付、出勤時間、退社時間、給料を入力したデータをいったんエクセルにエクスポートしております。そのエクスポートしたデータをACCESSに外部データとして取り込んでます。 その部分と、次の > Visual StudioのDataGridViewにACCESSのデータを表示させたいと考えております。 を分けて質問してください。たぶん最初の部分ができてないと想像してますが、であれば現時点では課題は表題の「DataGridViewにACCESSのデータを表示させたいです」以前の話です。 「エクセルのデータを Access に取り込む方法」ということで質問を書き換えてもらえませんか? そうではなくて、Access へのエクスポートは完了していて、DataGridView に表示する完全なデータはすでに Access にあるということなら、前者の部分は質問から削除して、Access ありきのところから質問を書いてください。
退会済みユーザー

退会済みユーザー

2021/04/12 12:04

もうギブアップしてこれ以上やる気はないのかな? それならそれで構いませんので、その旨自分で回答欄に書いてこのスレッドはクローズしてください。いつまでも無言で放置は NG です。
guest

回答1

0

自己解決

大変申し訳ありませんでした。
体調不良で返信出来てませんでした。
本件はいったんクルーズとさせていただきます。
また何かありましたら質問させていただきます。

投稿2021/04/13 02:03

rarara_123

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問