VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2004/12/01(Wed) 15:08
投稿者junchan
Eメールbkalw803@rinku.zaq.ne.jp
URL
タイトルRe^2: ACCESSとVB間でのデータのやり取りについて

> > VBからは、ACCESSで作成されたデータもVBで書き込んだデータも問題なく呼び出されるのですが、
> > ACCESSからはVBで書き込んだデータが呼び出すことができません。
> いまいち状況が掴めない(読解力不足か)んですが、
> VBからはどういう方法で、読み書きしてますか?
> 例えば、
> ADOかDAOかとか
> SQL文かUpDataかとか

書き込みのプロシージャー
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.OLEDB.4.0;" & _
            "Data Source=\\DELL\My Documents\NEWスタンプ会.mdb"
        cn.Open
        Set rst = New ADODB.Recordset
        rst.Source = "会員マスタ"
        rst.ActiveConnection = cn
        rst.CursorType = adOpenStatic
        rst.LockType = adLockOptimistic
        rst.Open
        
        With rst
            .MoveLast
            .AddNew
            ![連番] = ![連番] + 1
            ![会員NO.] = Text1.Text
            ![郵便番号] = Text4.Text
            vntResult = Split(Text5.Text, " ")
            ![住所1] = vntResult(0)
            ![住所2] = vntResult(1)
            ![電話番号] = Text6.Text
            ![氏名] = Text2.Text
            ![ふりがな] = Text3.Text
            ![性別NO.] = Text8.Text
            ![生年月日] = Text7.Text
            ![加盟店NO.] = Combo1.Text
            ![登録NO.] = Text9.Text
            ![DM] = 0
            ![チラシ] = 0
            ![会員証] = 0
            ![ラッキー] = 0
            .Update
        End With
        rst.Close
        cn.Close
        Set rst = Nothing
        Set cn = Nothing
End sub

呼び出しのプロシージャー
Private Sub Text1_LostFocus()
  Dim cn As New ADODB.Connection
    Dim rst1 As ADODB.Recordset
    Dim searchNum As String
    Dim searchAdd As String
    Dim DBFile As String
    Dim ubCode As Long
    Dim vntResult As Variant
    
    searchNum = Text1.Text
    Set cn = New ADODB.Connection
    cn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=\\DELL\My Documents\NEWスタンプ会.mdb"
    cn.Open
    Set rst1 = New ADODB.Recordset
    rst1.Source = "会員マスタ"
    rst1.ActiveConnection = cn
    'rsr1.CursorType = adOpenStatic
    rst1.Open
    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.]
                entryFlag = True
                Exit Do
            Else
                entryFlag = False
            End If
            rst1.MoveNext
        Loop
    住所 = Text5.Text
    vntResult = Split(住所, " ")
    searchAdd = vntResult(0)
    Open CurDir & "\ZipCode.csv" For Input As #1
        Do Until EOF(1)
            Input #1, ubCode, Jusho
            If InStr(Jusho, searchAdd) > 0 Then
                Text4.Text = ubCode
                Exit Do
            End If
        Loop
    Close #1
    If Text2.Text = "" Then
    Else
        Text10.SetFocus
    End If
    On Error GoTo 0
    rst1.Close
    cn.Close
    Set rst1 = Nothing
    Set cn = Nothing
End Sub

> ACCESSから呼び出せないとは、どういう呼び出し方をしたときですか?
ACCESSの入力FORMの「会員NO.」を入力した場合、登録RECORDが呼び出されるようになっていますが
VBから入力されたRECORDに限り表示されず、他のFIELDの値を入力し、登録ボタンをCLICKすると、
インデックス、主キーまたはリレーションシップで値が重複していると警告されます。
重複しているということは、「会員マスタ」TABLEの該当RECORDを認識しているとおもわれますが、
「会員NO.」のデータの型に問題があるのでしょうか?
ちなみにACCESSの「会員NO.」のデータの型はSTRINGでFIELD SIZE = 13 です。

> テーブルをダブルクリックする等で開いたときには見えてますか?
ACCESSでTABLEを開くとVBで書かれたRECORDは見えています。

以上のとおりです。お手数ですが、よろしくお願いいたします。
カムリン様
                                 Junchan


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -