
お世話になります。初めて投稿させていただきます。
VB6.0で下記のようなコードでコンボボックスcboMakerへフィールド値を格納しているのですがこのコードをVB2005のado.netで記述したいのですが可能でしょうか?可能であればどのようなコードを書けばよいのでしょうか。フィールドの値を1レコードづつ取得することは可能なのでしょうか?
初心者ですみません。宜しくお願いします。
Dim con As ADODB.Connection
Dim rec As ADODB.Recordset
Dim sql As String
Dim recCnt As Long
con = New ADODB.Connection
con.ConnectionString "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & パス
con.Open()
rec = New ADODB.Recordset
sql = "SELECT * FROM " & テーブル名
rec.Open(sql, con, adOpenStatic, adLockReadOnly)
If rec.RecordCount < 1 Then
'レコードが存在しない
MsgBox("未登録です。", G_MB_CAUTION, G_SYSTEM_NAME)
Exit Function
Else
ReDim CboMakerId(rec.RecordCount)
End If
'コンボボックスに値を挿入 ※「.List(recCnt)」から値を挿入する
With Me.cboMaker
.Clear()
recCnt = 0
.List(recCnt) = ""
.ItemData(recCnt) = 0
Do Until rec.EOF
recCnt = recCnt + 1
.List(recCnt) = rec("Name")
.ItemData(recCnt) = rec("ID")
rec.MoveNext()
Loop
End With
Me.cboMaker.ListIndex = 0
rec.Close() : rec = Nothing
con.Close() : rec = Nothing
End Function
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ADO.NETでは
DataSet,DatTable,DataColumn
DataConnection,DataAdapter, BaindingSource
などを使って行います
まず DataTableに列情報を DatatColumnを使って作成します
このテーブルを DataSetと結び付けます
BaindingSourceにDataSetとテーブルの関係を設定
ComboBoxのDataSource,DisplayMember,ValueMemberを設定DatatConnectionにデータベースとの接続を設定します
DataAdapterを使ってデータベースからDataSetへ読み込みます
といった手順です
dim col(1) as new DataColumn
Dim tbl as new DataTable("テーブル名")
dim ds as new DataSet
col(0) = new DataColumn("ID")
col(1) = new DataColumn("Name")
tbl.Columns.AddRange( col )
ds.tables.Add( tbl )
dim bind as new BindingSource
bind.DataSource = ds
bind.DataMember = "テーブル名"
dim cnn as new oleDb.OleDbDataConnection
cnn.connectionString = "接続用文字列"
dim adp as new OleDB.OleDBDataAdapter("SQL文",cnn )
adp.Fill( ds, "テーブル名")
cboMaker.DatSource = bind
cboMaker.DisplayMember = "Name"
cboMaker.ValueMember = "ID"
といった具合です
選択された項目の『ID』の取得は cboMaker.SelectedValue で取得できます
データセットにデータを読み込めれば コンボボックスに個別にデータを設定も可能です
dim n as integer
for each row as DataRow in ds.Tables("テーブル名")
n = cboMaker.items.Add( Row("Name") )
next
といった具合です
しかし ItemDataプロパティが廃止されています
これと互換のある機能は VB互換性ライブラリの SetItemData/GetItemDataを使うことになります
SetItemData( cboMaker, n, row("ID") )
n = cboMaker.SelectedIndex
nID = GetItemData( cboMaker, n )
といった使い方です
# 参照設定や Imports互換性ライブラリを設定して使います
別の方法としては
IDEのメニューの『データ』から『新しいデータソースの作成』のウィザードに従ってデータソースを作ります
一度アプリをビルドします
ツールボックスの上部に 作成したデータセットのアイコンがあるのでこれを フォームにドラッグします
ツールボックスから BindingSourceアイコンをドラッグします
作成されたBindingSoueceのDataSourceに 先のデータセットオブジェクト名 DataMemberにテーブル名
cboMakerの DataSoure、DisplayMember、valueMemberを設定
といった具合です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
ExcelVBAからAccessMDB内のテー...
-
Excel複数シートをaccessへ一括...
-
ExcelからAccessのテーブルに書...
-
エクセルのテーブルを解除する...
-
AccessからExcelへエクスポート...
-
SQLを発行とは?クエリの作成と...
-
Accessで別mdbのテーブルをコピー
-
Access2007でアプリケーション...
-
VBとアクセスでSQL文に変...
-
DataGridViewに複数テーブルの...
-
[C#] DataGridViewでコンボボッ...
-
COBOLのINVALID KEYが理解でき...
-
HTMLのテーブルの行数が多くな...
-
VB.NETでのAccessテーブルリンク
-
VB.NET データセットとADOレコ...
-
他のMDBのテーブルに追加したい
-
vb ado → vb2005 ado.net変換
-
アークタンジェントテーブルの...
-
DAOでテーブル名を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
VBとアクセスでSQL文に変...
-
SQLを発行とは?クエリの作成と...
-
ExcelVBAからAccessMDB内のテー...
-
[C#] DataGridViewでコンボボッ...
-
エクセルのテーブルを解除する...
-
ACCESS2010 実行時エラー 2766
-
CSVファイルのエクスポートでソ...
-
他のMDBのテーブルに追加したい
-
AccessからExcelへエクスポート...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
Accessで宛名ラベルに同一宛先...
-
DataGridViewに複数テーブルの...
-
.net 複数の主キーを設定する方法
-
Excel複数シートをaccessへ一括...
-
アクセステーブル、リンクとロ...
-
VB.NETでのAccessテーブルリンク
おすすめ情報