![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。初めて投稿させていただきます。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
アクセステーブル、リンクとロ...
-
SQLを発行とは?クエリの作成と...
-
AccessからExcelへエクスポート...
-
手動または分散トランザクショ...
-
Accessで別mdbのテーブルをコピー
-
エクセルのテーブルを解除する...
-
★クリスタルレポートの元になる...
-
HTMLのテーブルの行数が多くな...
-
ExcelVBAからAccessMDB内のテー...
-
Accessのフォームでリス...
-
複数のデータベースを検索したい
-
VBとアクセスでSQL文に変...
-
Access2007でアプリケーション...
-
C# OleDbDataAdapter.Fillメソ...
-
重複したデータを見つけたいの...
-
他のMDBのテーブルに追加したい
-
Access SQLITEのリンクテーブ...
-
DataGridの中身をDataSetにテー...
-
vb ado → vb2005 ado.net変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
エクセルのテーブルを解除する...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
HTMLのテーブルの行数が多くな...
-
ACCESS2010 実行時エラー 2766
-
ExcelVBAからAccessMDB内のテー...
-
Excel複数シートをaccessへ一括...
-
DataGridViewに複数テーブルの...
-
他のMDBのテーブルに追加したい
-
ワークテーブルの作成について
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
VBでコンボボックスとテキスト...
-
VB.NETでのAccessテーブルリンク
-
Accessのフォームでリス...
おすすめ情報