VB6.0で住所録を作成しているのですが、データをコンボボックで読み込みたい時は、どうしたら宜しいですか??
(ちなみにコンボボックスで選択した個人データを、ラベルに表示出来るようにしたいです。)
どなたかお分かりの方が、いらっしゃいましたらご回答の程、宜しくお願いいたします。
csvだろうとComboBoxだろうとファイル処理は
基本的に同一です。
流れは
●ファイルをリードモードでオープン
●エンドオブファイルまでループ
●1行読み込み
●ComboBoxへAddItem
●ループエンド
●ファイルクローズ
読み込みに関しては、Input#でカンマで区切った項目を
カンマで区切った変数に読み込む方法と、
Line Input#で1行一括読み込みし、
カンマをデリミタとしてSplitで分割する方法があります。
行によって項目数が異なる場合は
後者のほうが対応しやすいでしょう。
ま、しかし、参照系に限るなら
csvをテキストデータベースとして開き、
データコンボあたりに表示したほうがいいかもしれません。
返事が送れてすいません。
教えていただいていて、とても言いにくいのですが、
簡単なもので結構ですので、文を書いていただけると幸いです、、、
わがまま言って申し訳ありませんが、宜しくお願い致します。
甘えてすいません。VB初心者なもので。。。
ちなみにVBA(エクセル)ではこーゆー流れのものです。↓↓
Private Sub ComboBox1_Change()
Dim Target As Long
Dim myDate As String '指定日付
Dim Days As String '間隔(日)
Dim today As String
today = Format(Now(), "ggge年m月d日")
'Sheet1.Cells(Target + 2, 13) = today
Target = ComboBox1.ListIndex
If Cells(Target + 2, 9) = "" Then '*免許を持っていない場合*
Label19 = "無期限" '*無期限と表示*
Label21 = "***日" '*残数を***日とする*
Else
myDate = Cells(Target + 2, 9).Value
Label19 = Format(myDate, "ggge年m月d日")
Sheet1.Cells(Target + 2, 11) = DateDiff("d", Date, myDate) & "日"
Label21 = Format(Sheet1.Cells(Target + 2, 11), "d日")
End If
Label15 = Cells(Target + 2, 2) '*名前*
'TextBox1 = Cells(Target + 2, 2) '*名前*
Cells(Target + 2, 1) = Label15
Label23 = Cells(Target + 2, 3) '*フリガナ*
Label16 = Cells(Target + 2, 4) '*現住所*
Label17 = Cells(Target + 2, 5) '*連絡先*
Label14 = Cells(Target + 2, 6) '*携帯*
Label18 = Cells(Target + 2, 7) '*アドレス*
Label20 = Format(Cells(Target + 2, 10), "ggge年m月d日") '*写真撮影日*
If Dir(Cells(Target + 2, 8)) <> "" Then '*if文。画像の有無*
Image1.Picture = LoadPicture(Cells(Target + 2, 8)) '*画像があるとき:指定ファイルを表示*
Else
Image1.Picture = LoadPicture() '*画像がないとき:無表示*
End If
End Sub
コマっています。
上記の内容が分かる方がいらっしゃいましたら、宜しくお願い致します。
いちご様が何がわからないかが、わかりません。
それを具体的に説明してください。
VBAのだいたいの流れはわかりますが、
いちご様が書かれた
>VB6.0で住所録を作成しているのですが、データを
の「データ」は何ですか?CSVファイル?それともデータベース?
めがねのけー様、返信ありがとうございます。
読み込みたいのものは、CSVファイルです。
CSVファイルに名前等のデータを入力しています。
Open strFilePath For Input As #1
Do Until EOF(1) 'ファイルの最後まで読み込み
'1行をカンマ区切りでそれぞれ読み込む
Input #1, str1, str2, str3,…
'***実際の処理***
Loop
Close #1
とりあえずcsvを読むのならこのようにやればよいでしょう。
よく見たら、表題がCSVって書いてあるし。(--;;;
実際、何がわからないのかはまだよくわかってませんが、
上記VBAのソースを見るに、CSVからデータをどうやってる取得するかが問題のようですね。
Say様/michi様が書かれているような処理でよさそうですね。
SQLがわかるのであれば、データベース処理を行う方が「私は」楽です。
その際のコードは本や、サイトを参考にすると良いと思います。
以下、そのままでは動くはずもありませんが、コードです。
参照設定にMicrosoft ActiveX Data Objects 2.x Libraryを指定しています。
------------------------------
Dim objAdoCon As ADODB.Connection 'コネクション
Dim objAdoRec As ADODB.Recordset 'レコードセット
Dim strSql As String 'SQL文格納
Dim strCSVPath As String 'CSVパス
'----------------------------------------------------
strCSVPath = "C:\TEMP\TEST.CSV"
Set objAdoCon = New ADODB.Connection
Set objAdoRec = New ADODB.Recordset
objAdoCon.ConnectionString = _
"Provider=MSDASQL.1;" & _
"Extended Properties=""" & _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & strCSVPath & """" '接続
objAdoCon.Open 'オープン
objAdoRec.CursorType = adOpenForwardOnly 'カーソルタイプ
objAdoRec.LockType = adLockReadOnly 'ロックタイプ
strSql = "SELECT * FROM TEST_TABLE"
Set objAdoRec = objAdoCon.Execute(strSql) 'SQL実行
Label1.Caption = objAdoRec.Fields(0).Value
objAdoRec.Close
objAdoCon.Close
Set objAdoRec = Nothing
Set objAdoCon = Nothing
michi様・めがねのけー様 ありがとうございます。
SQLは分からないので、michi様に教えて頂いたコードを参考に頑張ってみたいと思います。
また分からなくなった時は、ココに書き込みをしたいと思いますので、その際は宜しくお願いします。
何とかできそうです。
ありがとうございましたm(__)m