こんにちは。初めて質問します。
実は昨日からVisualBasicを購入して、データベースに取り組んでいます。
ところで、コンボボックスのリストに、テキストファイルのデータを随時取り込む方法はあるんでしょうか?

例、C:\町名.txt

●●市,▲▲町,
××市,××村,

このQ&Aに関連する最新のQ&A

A 回答 (1件)

え~っと、質問の意味(随時取り込む)がちょっと理解しづらいです。


ただ単にファイルを開いて、内容を読み込み、コンボボックスに追加していくということなのでしょうか?
それとも、任意のタイミングで読み込み追加なのでしょうか?

ファイルには、
●●市、▲▲町
××市、××村
・・・・・・・
・・・・・・・
と入ってるんでしょか?

この回答への補足

どうも、かなり分かりずらい説明ですみませんでした。
私がわからないことは以下の通りですので、整理します。

1.今、フォームForm1上にコンボボックスCombo1があります。

Combo1を開いたとき、

横浜市 |●●町 |×× ・・・(1)
北九州市|▲▲▲村|■■ ・・・(2)
・・・・・・
というように、複数の列で表れ、例えば(2)を選択したときに、テーブル(Accessなど)のフィールドAに北九州市、Bに▲▲▲村、Cに■■を保存することは出来るのでしょうか?

2.さらに下のようなテキストファイルがあり、

横浜市,●●町,×× 
ひなた市,▲▲▲村,■■
・・・・・

Form1を開くと、自動的にCombo1のリストが

横浜市 |●●町 |×× 
北九州市|▲▲▲村|■■ 
・・・・・・

と、以前のリストを上書きすることが出来るでしょうか?


よろしくお願いします。

補足日時:2002/02/04 20:01
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBAで、すべてのファイル(ppt,pdf,txt

VBAで、すべてのファイル(ppt,pdf,txtなど)を選択して開きたい

VBA初心者です。ダイアログから選択して様々な形式のファイルを
開きたいのですが、
検索して↓などをみていますが、イマイチわかりません。。。

http://oshiete.goo.ne.jp/qa/1545851.html
http://oshiete.goo.ne.jp/qa/7827757.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414898789


【環境 WindowsXP Excel2000】

↓これだとPDFを選択はできますが、エクセルに文字化けしてでてきます。

Sub フォルダからファイル選択()
Dim OpenFileName As String
Dim AAA, ZZZ As String

AAA = Sheets("data").Range("A5")
ZZZ = "'ChDir "\■.local\pubs\●\△\" & AAA

With CreateObject("WScript.Shell")
.CurrentDirectory = ZZZ
End With

OpenFileName = Application.GetOpenFilename("すべてのファイル,*.*")

If OpenFileName <> "False" Then
Workbooks.Open OpenFileName
Else
MsgBox "キャンセルされました"
End If
End Sub


不足情報ありましたら補足致しますので、お教え下さい><;

VBAで、すべてのファイル(ppt,pdf,txtなど)を選択して開きたい

VBA初心者です。ダイアログから選択して様々な形式のファイルを
開きたいのですが、
検索して↓などをみていますが、イマイチわかりません。。。

http://oshiete.goo.ne.jp/qa/1545851.html
http://oshiete.goo.ne.jp/qa/7827757.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414898789


【環境 WindowsXP Excel2000】

↓これだとPDFを選択はできますが、エクセルに文字化けしてでてきます。

Sub フォルダからファイル選...続きを読む

Aベストアンサー

Workbooks.Open OpenFileName

createobject("shell.application").shellexecute openfilename
にしてみてください。

QVisualBasic6.0からVisualBasic.NET

今までVisualBasic6.0で作っていたプログラムは、VisualBasic.NETで動かすことは可能でしょうか?

Aベストアンサー

これでわからなければ、やめておいた方がいい様です。
http://www.microsoft.com/japan/msdn/vbasic/techinfo/upgrade/

QVisualBasic4.0 , 6.0 で開発する時に便利なフリー シェアソフトは?

VisualBasicで開発する時に、あったら便利な補助的なソフトがあれば
教えて下さい!便利なソフトありませんか?

よろしくお願いします。

Aベストアンサー

シェアというかパッケージ商品ですが
グレープシティ株式会社(旧 文化オリエント株式会社)の
OCX類は使えます。
表計算、入力支援、印刷帳票ツールと豊富です。
値段も張りますが・・・

参考URL:http://www.grapecity.com/Japan/

QVisualBasic6でAccess2000にデータ格納

 初めまして私はVB6.0の初心者でVB6.0について勉強しています。今VB6.0でAccess2000を利用する勉強をしています。

<プログラム内容>
 フォームに貼り付けたテキストボックス3つ(ID,Password,氏名)とコンボボックス2つ(性別,年齢)にデータを入力しOKボタン(コマンドボタン)を押すとAccess2000のテーブルの中のレコードが追加される。

<条件>
・テーブル名:PROF

・フィールド情報
 IDとPasswordと氏名と性別はテキスト型で、年齢は数値型です。

 私の場合は以下のようなコードを作成しましたが実行すると「Insert文が間違っている」と出てきてしまいます。何故なのでしょうか。お知恵をお貸しください。宜しくお願いします。

Private Sub OK_Click() 'OKボタンを押下すると

'ADOのオブジェクト変数を宣言
Dim cn As New ADODB.Connection 'Connectionオブジェクトを扱う変数(cn)を宣言
Dim rs As New ADODB.Recordset 'Reocordsetオブジェクトを扱う変数(rs)を宣言
Dim strSQL As String 'SQL文

strSQL = "INSERT INTO PROF " & _
" (ID " & _
" ,Password " & _
" ,氏名 " & _
" ,性別 " & _
" ,年齢) " & _
"VALUES (' ID.Text ' " & _
" ,' Password.Text ' " & _
" ,' Name.Text ' " & _
" ,' Sex.Text ' )" & _
" ,' Age.Text ' )"

'データベースに接続するための情報を設定する(データベースの種類、データソース)
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source = C:\sample\ID.mdb"

'データソースへ接続
cn.Open

'AcccessのPROF(テーブル)のID,Password,氏名,性別,年齢(フィールド)にデータ(ID,Password,氏名,性別,年齢)を挿入
rs.Open strSQL, cn

'コネクションを終了する
cn.Close


End Sub

 初めまして私はVB6.0の初心者でVB6.0について勉強しています。今VB6.0でAccess2000を利用する勉強をしています。

<プログラム内容>
 フォームに貼り付けたテキストボックス3つ(ID,Password,氏名)とコンボボックス2つ(性別,年齢)にデータを入力しOKボタン(コマンドボタン)を押すとAccess2000のテーブルの中のレコードが追加される。

<条件>
・テーブル名:PROF

・フィールド情報
 IDとPasswordと氏名と性別はテキスト型で、年齢は数値型です。

 私の場合は以下のようなコードを作成し...続きを読む

Aベストアンサー

どこかで同じ名前の変数か関数がある場合に修飾子エラーになります。
自分で作ったもの以外でも、参照設定やコンポーネントの追加により、
定義名が増えますので、注意しないといけません。
先ず、NameとかIDとかは「よくある名前」なので、コントロール名を変えるべきです。
それが嫌なら Forms("xxx").Controls("Name").Text とか、Me.Controls("Name").Text
のように完全修飾して使用してください。ここで、xxx はフォームの名前
Meはフォーム内のプロシージャに限り使用できる自フォームを指すオブジェクトです。
コントロール名が「よくある名前」でないなら、Me.SHIMEI.Text と記述できますが、
MeにはNameプロパティがあるので、Me.Name.Textとは記述できません。

それと、",'" & Age.Text & "')" は間違いです。"," & Age.Text & ")" が正しい。
Ageは数値なので、'(アポストロフィ)で囲ってはいけません。
前もレスしましたが、再掲します。
(1)文字型 '(アポストロフィ)または"(クォート)で囲む cf. 'ABC'
(2)日付型 #(シャープ)で囲む cf. #2008/05/29#
(3)数値型 囲まない。 cf. 30

どこかで同じ名前の変数か関数がある場合に修飾子エラーになります。
自分で作ったもの以外でも、参照設定やコンポーネントの追加により、
定義名が増えますので、注意しないといけません。
先ず、NameとかIDとかは「よくある名前」なので、コントロール名を変えるべきです。
それが嫌なら Forms("xxx").Controls("Name").Text とか、Me.Controls("Name").Text
のように完全修飾して使用してください。ここで、xxx はフォームの名前
Meはフォーム内のプロシージャに限り使用できる自フォームを指すオブジェ...続きを読む

QVB6変数の宣言dim j,k,p,m,n as Integerは良くない?

お世話になります。

VB暦1年です。

汎用の変数宣言でタイトルのように
dim j,k,p,m,n as Integer
dim ssa,ssb as String

など、カンマ区切りで変数宣言を使っていたのですが
最近、知人にasの手前の変数は型どおり宣言されるが
その手前の変数はVariant型で宣言されてしまうと指摘されました。

指摘されるまで気にはしていませんでしたが
ウォッチで確認すると変数に代入されるまでは
型がVariant/Emptyとなってます。

以後、気をつければいいのですが
過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。
後々、問題になるのかな?

Aベストアンサー

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというようなバグの原因になりやすいので、型を明示できるような状況で敢えてVariant型を使うべきではないです。

しかし、すでに納品してしまったコードについては、問題はメモリを余計に使ってしまうことくらいではないでしょうか?
他の人が気づかなかったことから考えるに、多分狭いスコープで使っていますよね? 比較対象や代入するべき型を誤るというようなロジックの誤りがない限り、少なくとも動作上の問題は発生しないと思います。ただ、直せる機会があるのであれば、直した方がいいとは思いますが。

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというよう...続きを読む


人気Q&Aランキング

おすすめ情報