[リストへもどる]
一括表示

投稿時間:2004/05/11(Tue) 14:36
投稿者名:くるりん
URL :
タイトル:
DAOをつかってのMDB接続
こんにちは、お世話になっております。
DAOを使ってカレントディレクトリにある"Data.mdb"を開いて、フォームロード時に件数を取るという処理をしております。
以下のようなコードで行っているのですが、DCountのところでエラーがでてしまいます。

Option Explicit

Dim db As DAO.Database
Dim ws As DAO.Workspace
Dim rst As DAO.Recordset

Private Sub Form_Load()

Dim chk As Integer

    On Local Error Resume Next

    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(App.Path & "\Data.mdb")
    Set rst = db.OpenRecordset("EVT", dbOpenDynaset)
    
    On Local Error GoTo 0
    
    If chk <> 0 Then
      MsgBox "データベースに接続出来ません。"
      End
    End If

    max = DCount("No", "EVT")
    Debug.Print max
End Sub

Data.mdbの中にEVTというテーブルがありなおかつその中にはNoと言う項目はちゃんとあります。
でだしで躓いてしまっているので、どうかご指摘よろしくお願いします。

投稿時間:2004/05/11(Tue) 14:57
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: DAOをつかってのMDB接続
> Data.mdbの中にEVTというテーブルがありなおかつその中にはNoと言う項目はちゃんとあります。
> でだしで躓いてしまっているので、どうかご指摘よろしくお願いします。
>
DCountは自作の関数ですか?
DCountの方を投稿しないとどこが悪いのかわかりませんよ。

投稿時間:2004/05/11(Tue) 15:09
投稿者名:くるりん
URL :
タイトル:
Re^2: DAOをつかってのMDB接続
> DCountは自作の関数ですか?
> DCountの方を投稿しないとどこが悪いのかわかりませんよ。

あ、すみません。。
アクセスで作ってたコードをアクセスじゃ重すぎてVBで作ろうと思ったので、使えるものだと思って使ってました・・・。
レコードの件数をカウントする関数を探してみます。。
どうもありがとうございましたです

投稿時間:2004/05/11(Tue) 16:52
投稿者名:GOD
Eメール:
URL :
タイトル:
Re^3: DAOをつかってのMDB接続
> あ、すみません。。
> アクセスで作ってたコードをアクセスじゃ重すぎてVBで作ろうと思ったので、使えるものだと思って使ってました・・・。
> レコードの件数をカウントする関数を探してみます。。
> どうもありがとうございましたです
>
こんなのでいいのかな?
    max = rst.RecordCount
    If Max <> 0 Then
        rst.MoveLast
        max = rst.RecordCount
        rst.MoveFirst
    End If
というかSQL文でCOUNTってやった方が速そうですが。

投稿時間:2004/05/12(Wed) 10:06
投稿者名:とろ
Eメール:
URL :
タイトル:
Re^3: DAOをつかってのMDB接続
> > DCountは自作の関数ですか?
>
> アクセスで作ってたコードをアクセスじゃ重すぎてVBで作ろうと思ったので、
> 使えるものだと思って使ってました・・・。

DCount は、 Access の関数です。
Access VBA では
普通に DCount 関数を使用できますが、
VB6 などでは使えません。
それなので、 Access を参照設定すれば、
DCount を使用できるようになります。

# 軽くなるのかどうかは分かりませんが...

投稿時間:2004/05/17(Mon) 16:57
投稿者名:くるりん
Eメール:
URL :
タイトル:
Re^4: DAOをつかってのMDB接続
はぅっ、お二人ともお返事遅れましたがわざわざどうもありがとうございます。
結局あの後Do While Not レコードセット名.EOF を使って処理をしました。

お礼が遅れて本当に申し訳ありません〜〜(TT