参照がDAOで、mdb内のテーブルのデータを変数に代入するために、

変数.Open "SQL内容"

この文を使いたいのですが、この変数の宣言の記述は、
どう書いたら良いのか分かりません...

A 回答 (2件)

Dim Rs As DAO.Recordset


Set Rs = オブジェクト名.OpenRecordset (SQL文)
では駄目でしょうか?
openメソッドは使用していませんが…
すみません、当方ADOしか触ったことないので(--;

DAO簡易リファレンスというのを見つけましたので、
もしよろしければ参考にして下さい。
VBでデータベース(http://homepage2.nifty.com/inform/vbdb/index.html
というサイトもありますよ。

参考URL:http://www.reitaku-u.ac.jp/~ykago/db_a_2000/dao/ …
    • good
    • 0
この回答へのお礼

有難うございます!
教えて頂いたリンクで、解決方法を見つけて、うまく必要な値を取得することが出来ました。
VBでデータベースで、もっと勉強出来そうなので、
とても有り難いです(^o^)

お礼日時:2001/09/12 10:04

はっきり覚えていませんが、多分以下のようになると思います。



Dim rsRec as DAO.Recordset
Set rsRec = New Dao.Recordset

rsRec.Open "SQL文"



rsRec.Close
Set rsRec = Nothing

DAO*.hlpまたはDAO*.chmを検索して、詳しい使用方法を見ていただけると、いいと思います。
    • good
    • 0
この回答へのお礼

有難うございます!
試してみましたら、
Set rsRec = New Dao.Recordset
は、必要ないようでしたが、良いヒントになりました(^o^)

お礼日時:2001/09/12 10:01

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

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

Q配列をループでたくさん宣言したいのですが、配列名や変数名を変数で宣言することはできませんか?

お世話になっております。
タイトル通りの質問です。

日付がファイル名になっているCSVファイルが複数あるのですが、
それをそのまま「array20071020」などという名前の配列に、それぞれ入れて行きたいと思います。ループ処理でなければ出来ないと思うのですが、ループ処理内で配列を宣言していく方法はあるでしょうか。

Aベストアンサー

dim array20071020 as string
dim array20071021 as string
dim array20071022 as string
...
みたいな事をプログラムでと言う事だと思うのですが、多分できないと思います。

で、excelにはcollectionと言う、名前も変数も文字にできるオブジェクトがあるので、
dim csv as new collection
csv.Add loadCsv("20071020"),"20071020"
csv.Add loadCsv("20071021"),"20071021"
csv.Add loadCsv("20071022"),"20071022"
(loadCsvはたとえばの関数です)
と追加しておけば、
str=csv("20071020")
で読み出せます。

collectionのアイテムは、文字とか変数だけではなく、配列やオブジェクトとかを、個々に指定できる点が便利です。
Dim hoge(1, 2) As Integer
hoge(1, 1) = 11
hoge(1, 2) = 12
Dim fumu As New Collection
fumu.Add 123, "20071020"
fumu.Add "abc", "20071021"
fumu.Add hoge, "20071022"
fumu.Add Range("A1:C5"), "20071023"
MsgBox fumu("20071020")
MsgBox fumu("20071021")
MsgBox fumu("20071022")(1, 1)
MsgBox fumu("20071022")(1, 2)
MsgBox fumu("20071023").Rows.Count
MsgBox fumu("20071023").Columns.Count

dim array20071020 as string
dim array20071021 as string
dim array20071022 as string
...
みたいな事をプログラムでと言う事だと思うのですが、多分できないと思います。

で、excelにはcollectionと言う、名前も変数も文字にできるオブジェクトがあるので、
dim csv as new collection
csv.Add loadCsv("20071020"),"20071020"
csv.Add loadCsv("20071021"),"20071021"
csv.Add loadCsv("20071022"),"20071022"
(loadCsvはたとえばの関数です)
と追加しておけば、
str=csv("20071020")
で読み...続きを読む

Q変数宣言(Dim)と定数宣言(Const)のメモリ使用量

VS2005で開発しています。
Constで定数宣言したものはソース上でカーソルを当てるとその場で内容を確認できますが、変数で宣言しておくことでメモリ使用量が少なくなると言われました。
そうするといちいち定義まで飛ばないと定数の中身が見れず不便に思っているのですが、本当にメモリ使用量が少なくなるのでしょうか?

Aベストアンサー

・Constはコンパイルしたときに消えるので、そもそもメモリを使っていない。

  Const A As Integer = 1
  Dim B As Integer = A

  コンパイルすると

  Dim B as Interger = 1

変数にするとメモリを使うので、むしろメモリ使用量が増える。

だだし、文字列を複数回使う場合は、Constより変数がいいかな。

  Const C As String = "***************************************************************"
  Dim D As String = C
  Dim E As String = D

  コンパイルすると

Dim D As String = "***************************************************************"
Dim E As String = "***************************************************************"

・Constはコンパイルしたときに消えるので、そもそもメモリを使っていない。

  Const A As Integer = 1
  Dim B As Integer = A

  コンパイルすると

  Dim B as Interger = 1

変数にするとメモリを使うので、むしろメモリ使用量が増える。

だだし、文字列を複数回使う場合は、Constより変数がいいかな。

  Const C As String = "***************************************************************"
  Dim D As String = C
  Dim E As String = D

  コンパイルすると

...続きを読む

Q変数の宣言はすべきでしょうか?宣言することの功罪について教えて下さい。

変数の宣言はすべきでしょうか?宣言することの功罪について教えて下さい。
また、宣言するべきというアドバイスの場合、どのように宣言するのがスマートでしょうか。
みなさんのご意見をお聞かせ下さい。

Aベストアンサー

書き込みがあったので追加で。

具体的な位置はなるべく範囲をせまくすることを目指すべきです。
グローバルな変数よりも、モジュール(またはクラス)レベルの変数、
モジュールレベルよりもプロシージャ(メソッド)レベルの変数、
さらにそれよりもUsingやTry、Forなどの中で、
という風にブロックレベルを目指すことになります。

VB6.0の頃はUsingなどがなかったので
プロシージャの途中で宣言すると変数を把握しにくくなるということで
プロシージャレベルまでいったらプロシージャの先頭に
まとめることが多かったです。

しかしVB.NETではJavaなどと同様に
使う直前に宣言して、使用したら即破棄するという方法が
やりやすくなったので、最近ではこちらのほうがいいでしょう。

あとVBでは下記のように変数宣言は縦に並べるほうがオススメです。
(グローバル、モジュール、プロシージャレベルの場合です。)

Dim test_var as string
DIM test2_var as byte

1行ごとにコメントにできたり、型の宣言なども見やすくなります。
変数が多い場合にExcelやテキストエディタを使った編集がしやすかったりもします。
あとは自分以外の人がみることを考えると分けたほうが把握しやすいでしょう。

ただし言語によっては1行に詰めて書くのを好む場合もあります。

最後に参考URLです。
第 6 回 様々な変数宣言 ~バージョン アップに伴う変化~
http://msdn.microsoft.com/ja-jp/ff384144.aspx

参考URL:http://msdn.microsoft.com/ja-jp/ff384144.aspx

書き込みがあったので追加で。

具体的な位置はなるべく範囲をせまくすることを目指すべきです。
グローバルな変数よりも、モジュール(またはクラス)レベルの変数、
モジュールレベルよりもプロシージャ(メソッド)レベルの変数、
さらにそれよりもUsingやTry、Forなどの中で、
という風にブロックレベルを目指すことになります。

VB6.0の頃はUsingなどがなかったので
プロシージャの途中で宣言すると変数を把握しにくくなるということで
プロシージャレベルまでいったらプロシージャの先頭に
まとめることが...続きを読む

QVB.NETで変数の宣言が上手くできません

VB.NETで変数の宣言が上手くできません

プロパティを使用し、変数の内容を一括保存しようと考えています
その為に以下のようなコードを書いたのですが他のフォームから宣言されていないとなってしまいます
修正点を教えて頂けると嬉しいです

Setting.vb
Pubic class Settings
Public dbdirectry As String
Public flistpass As String

Public Property flist () As String
Get
Return flistpass
End Get
Set (Byval Value As String)
flistpass = Value
End Set
End Property

もう一つflist () をdbdic ()に
flistpassをdbdirectryにしたもの

End Class

この変数2つに他のフォームMainForm1.vbとDefaultSetting.vbなどからflistpass = Newflistpassなどと記述するとアクセス出来ず宣言していない扱いになります
Publicでの宣言で大丈夫だと思ったのですが間違えているのでしょうか?

VB.NETで変数の宣言が上手くできません

プロパティを使用し、変数の内容を一括保存しようと考えています
その為に以下のようなコードを書いたのですが他のフォームから宣言されていないとなってしまいます
修正点を教えて頂けると嬉しいです

Setting.vb
Pubic class Settings
Public dbdirectry As String
Public flistpass As String

Public Property flist () As String
Get
Return flistpass
End Get
Set (Byval Value As String)
fl...続きを読む

Aベストアンサー

Dim setting As New Settings (New以降はクラス名とします)

これでインスタンスを作成して、

settings.firstpass
settings.dbdirectry

このようにアクセスします。

以下URLを参考になさってください。

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard47.htm

QVb.netのグローバル変数の宣言の仕方の質問

こんばんわ!
VB6.0からの移行でVB.net2012に挑戦中なんですが、グローバル変数の宣言の仕方で分からないことがあり質問しに着ました!

内容
モジュール内で
public hoge as string="aaa"
と宣言するのと

モジュール内で
public hoge as string
と宣言しておいて
フォーム起動時に
hoge="aaa"
と宣言するのにどのような違いがあるのでしょうか?

hogeの変数を変更したいのですが、上記の方法だと動いて、下記の方法だと動かないのですが・・・
まだ良く分かっていないので、程度の低い質問で申し訳ないのですが、アドバイスのほどよろしくお願いいたします。

Aベストアンサー

> グローバルで変数として一箇所のみで宣言しているのですが、それで別の変数になることはあるのでしょうか?
hoge が本当は text とかなら有り得ます。この場合、フォームの Text プロパティが変更されます。
別のクラスなどを Imports していて、そちらに同名の変数がある場合も有り得るかも知れません。
ただし、スコープが同じ変数が複数あると↓文法エラーが出るはず。
http://msdn.microsoft.com/ja-jp/library/856b0w3t(v=vs.110).aspx
http://msdn.microsoft.com/ja-jp/library/03x63w1z(v=vs.110).aspx

上記の現象の確認には、変数を使用している場所で右クリックメニューから「定義へ移動」で
その変数がどこで宣言されたものを参照しているか分かります。
変数のスコープが狭いものが優先して使用されるため、ローカル宣言や、自分が定義していなくとも
既に VB.NET で宣言されているものとかぶってはだめです。


>意味合い自体は同じであると認識しているのですが、あっていますか?
変数宣言は同じで、初期値が違います。…見たまんまだと思いますが。


>「 public hoge as string」と宣言したhoge
>動かないのは配列の項目数(例えば、hoge_arra(hoge)のように)使用しているのですが
配列の添字を文字列型にするなど話になりません。問題外です。
数値型にして下さい。

> グローバルで変数として一箇所のみで宣言しているのですが、それで別の変数になることはあるのでしょうか?
hoge が本当は text とかなら有り得ます。この場合、フォームの Text プロパティが変更されます。
別のクラスなどを Imports していて、そちらに同名の変数がある場合も有り得るかも知れません。
ただし、スコープが同じ変数が複数あると↓文法エラーが出るはず。
http://msdn.microsoft.com/ja-jp/library/856b0w3t(v=vs.110).aspx
http://msdn.microsoft.com/ja-jp/library/03x63w1z(v=vs.110).aspx
...続きを読む


人気Q&Aランキング

おすすめ情報