[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/09/18(Sat) 19:56
投稿者名:junchan
Eメール:bkalw803@rinku.zaq.ne.jp
URL :
タイトル:
LAN上のデーターベースに接続するには
VBを学び始めてからいつも当掲示板を参考にさせていただいて
おります。参考書だけでは十分な情報を得る事ができず、困った
ときのVBレスキューという具合です。
質問させていただきます。どなたか、レスキューお願いします。
下記のプロシージャーで自分のPCにデーターベースがある場合
は、接続ができ、読み書きができることまでは理解いたしました。
わたしが、やりたいことは、LAN上に<DBFile>がある場合で
す。
   DBFile = "\\SOTEC\My Documents\住所録.mdb"
では接続に失敗することもわかりました。ネットワークの接続の
仕方がわかりません。よろしくおねがいします。
                    WinXP/VB6/SP6
     
Private Sub Text1_LostFocus()
    Dim DB As Database
    Dim rst1 As Recordset
    Dim rst2 As Recordset
    Dim searchNum As String
    Dim DBFile As String
    searchNum = Text1.Text
    DBFile = "C:\My Documents\住所録.mdb"
    Set DB = OpenDatabase(DBFile)
    Set rst1 = DB.OpenRecordset("会員マスタ")
    Set rst2 = DB.OpenRecordset("住所マスタ")
    On Error Resume Next
    rst1.MoveFirst
        Do While Not rst1.EOF
            If searchNum = rst1![会員NO.] Then
                Text2.Text = rst1![氏名]
                Text3.Text = rst1![ふりがな]
                Text5.Text = rst1![住所1] & " " & StrConv(rst1![住所2], vbWide)
                Text6.Text = rst1![電話番号]
                Text7.Text = rst1![生年月日]
                Text8.Text = rst1![性別NO.]
                Text9.Text = rst1![登録NO.]
                
                Exit Do
            End If
            rst1.MoveNext
        Loop
    searchNum = rst1![住所1]
    rst2.MoveFirst
        Do While Not rst2.EOF
            If searchNum = rst2![住所1] Then
                ucode = rst2![郵便番号]
                ucode = Left(ucode, 3) & Right(ucode, 4)
                Text4.Text = StrConv(ucode, vbNarrow)
                Exit Do
            End If
            rst2.MoveNext
        Loop
    If Text2.Text = "" Then
    Else
        Text10.SetFocus
    End If
    On Error GoTo 0
    rst1.Close
    rst2.Close
    DB.Close
    Set DB = Nothing
    Set rst1 = Nothing
    Set rst2 = Nothing

投稿時間:2004/09/19(Sun) 16:01
投稿者名:junchan
Eメール:bkalw803@rinku.zaq.ne.jp
URL :
タイトル:
Re: LAN上のデーターベースに接続するには
> VBを学び始めてからいつも当掲示板を参考にさせていただいて
> おります。参考書だけでは十分な情報を得る事ができず、困った
> ときのVBレスキューという具合です。
> 質問させていただきます。どなたか、レスキューお願いします。
> 下記のプロシージャーで自分のPCにデーターベースがある場合
> は、接続ができ、読み書きができることまでは理解いたしました。
> わたしが、やりたいことは、LAN上に<DBFile>がある場合で
> す。
>    DBFile = "\\SOTEC\My Documents\住所録.mdb"
> では接続に失敗することもわかりました。ネットワークの接続の
> 仕方がわかりません。よろしくおねがいします。
>                     WinXP/VB6/SP6
>      
> Private Sub Text1_LostFocus()
>     Dim DB As Database
>     Dim rst1 As Recordset
>     Dim rst2 As Recordset
>     Dim searchNum As String
>     Dim DBFile As String
>     searchNum = Text1.Text
>     DBFile = "C:\My Documents\住所録.mdb"
>     Set DB = OpenDatabase(DBFile)
>     Set rst1 = DB.OpenRecordset("会員マスタ")
>     Set rst2 = DB.OpenRecordset("住所マスタ")
>     On Error Resume Next
>     rst1.MoveFirst
>         Do While Not rst1.EOF
>             If searchNum = rst1![会員NO.] Then
>                 Text2.Text = rst1![氏名]
>                 Text3.Text = rst1![ふりがな]
>                 Text5.Text = rst1![住所1] & " " & StrConv(rst1![住所2], vbWide)
>                 Text6.Text = rst1![電話番号]
>                 Text7.Text = rst1![生年月日]
>                 Text8.Text = rst1![性別NO.]
>                 Text9.Text = rst1![登録NO.]
>                
>                 Exit Do
>             End If
>             rst1.MoveNext
>         Loop
>     searchNum = rst1![住所1]
>     rst2.MoveFirst
>         Do While Not rst2.EOF
>             If searchNum = rst2![住所1] Then
>                 ucode = rst2![郵便番号]
>                 ucode = Left(ucode, 3) & Right(ucode, 4)
>                 Text4.Text = StrConv(ucode, vbNarrow)
>                 Exit Do
>             End If
>             rst2.MoveNext
>         Loop
>     If Text2.Text = "" Then
>     Else
>         Text10.SetFocus
>     End If
>     On Error GoTo 0
>     rst1.Close
>     rst2.Close
>     DB.Close
>     Set DB = Nothing
>     Set rst1 = Nothing
>     Set rst2 = Nothing
   End sub が抜けていました。
参考書をよんでいて築いたのですが、ADOやDAOではリモートデータベース
には接続できないようですね。

投稿時間:2004/09/19(Sun) 20:25
投稿者名:junchan
Eメール:bkalw803@rinku.zaq.ne.jp
URL :
タイトル:
Re^2: LAN上のデーターベースに接続するには
解決しました。
あれやこれやと試行錯誤し参考書に当たっているうちにSQLの項目に
手がかりがありました。
参考までに下記にプロシージャーを記しておきます。

Private sub Command1_click()
    Dim cn As New ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim strSQL As String

    Set cn = New ADODB.Connection
    cn.ConnectionString = _
        "Provider=Microsoft.Jet.OLBDB.4.0;" & _
        "Data Source=\\SOTEC\My Documents\住所録.mdb"
    cn.Open
    Set rst = New ADODB.Recordset
' 以下省略
End Sub