2016-12-13 8 views
0

3つの "SerialNoCubicle"番号をトリガーとして設定します。 「8」、「17」、「18」。TextBox.Value ExcelをレコードセットFields.Valueに置き換えます。

これらのうちの1つでcombobox.valueを入力すると、残りのtextbox.valueがアクセスデータベースから置き換えられます。問題は、値が "8"で、textboxes.valueが置き換えられた場合のみ、最初に行うことができることです。しかし、 "17"または "18"の場合、textbox.valueはまだ空です。

Iは

If txtSerialNoCubicle.Value = 8 or txtSerialNoCubicle.Value = 17 or _ 
txtSerialNoCubicle.Value = 18 then 

を変更することにより、それを手動で行うことができなく、ユーザ入力が「SerialNoCubicle」の「8」、「17」、「18」の横に別の値は、コードは、習慣新しい値

のために働きます
Private Sub serialnocubicleDB() 
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long 
Dim sql1 As String 

Set cn = New ADODB.Connection 
cn.Open "Provider=Microsoft.ace.OLEDB.12.0; " & _ 
"Data Source=E:\Database.accdb" 
Set rs = New ADODB.Recordset 

sql1 = "Select * FROM tblspecification " 

    rs.Open sql1, cn 
    If txtSerialNoCubicle.Value = rs.Fields("SerialNoCubicle").Value Then 
     TextBox1.Value = rs.Fields("Project").Value 
     TextBox2.Value = rs.Fields("ProjectNo").Value 
     TextBox3.Value = rs.Fields("No&DateofDrw").Value 
     TextBox4.Value = rs.Fields("DrawingNumber").Value 
     TextBox5.Value = rs.Fields("NameofCubicle").Value 
     TextBox6.Value = rs.Fields("SingleLineLayout").Value 
     TextBox7.Value = rs.Fields("PlantofTest").Value 
     TextBox9.Value = rs.Fields("TypeofProduct").Value 
     TextBox10.Value = rs.Fields("IPofProduct").Value 
     TextBox11.Value = rs.Fields("Substation").Value 
    End If 
    rs.Close 
    cn.Close 
    Set rs = Nothing 
    Set cn = Nothing 

    End Sub 

答えて

0

代わりのテーブル全体を照会し、ちょうどあなたが

Private Sub serialnocubicleDB() 
    Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long 
    Dim sql1 As String 

    Set cn = New ADODB.Connection 
    cn.Open "Provider=Microsoft.ace.OLEDB.12.0; " & _ 
    "Data Source=E:\Database.accdb" 
    Set rs = New ADODB.Recordset 

    'Query for the specific serial number 
    ' should be probably using parameters here depending on your use case 
    sql1 = "Select * FROM tblspecification t where " & _ 
      " t.SerialNoCubicle=" & txtSerialNoCubicle.Value 

    rs.Open sql1, cn 

    If Not rs.EOF Then 
     TextBox1.Value = rs.Fields("Project").Value 
     TextBox2.Value = rs.Fields("ProjectNo").Value 
     TextBox3.Value = rs.Fields("No&DateofDrw").Value 
     TextBox4.Value = rs.Fields("DrawingNumber").Value 
     TextBox5.Value = rs.Fields("NameofCubicle").Value 
     TextBox6.Value = rs.Fields("SingleLineLayout").Value 
     TextBox7.Value = rs.Fields("PlantofTest").Value 
     TextBox9.Value = rs.Fields("TypeofProduct").Value 
     TextBox10.Value = rs.Fields("IPofProduct").Value 
     TextBox11.Value = rs.Fields("Substation").Value 
    Else 
     TextBox1.Value = "" 
     TextBox2.Value = "" 
     TextBox3.Value = "" 
     TextBox4.Value = "" 
     TextBox5.Value = "" 
     TextBox6.Value = "" 
     TextBox7.Value = "" 
     TextBox9.Value = "" 
     TextBox10.Value = "" 
     TextBox11.Value = "" 
    End If 

    rs.Close 
    cn.Close 
    Set rs = Nothing 
    Set cn = Nothing 

End Sub 
+0

をしたいレコードは、SQL1の行を定義する際にエラーをtheresの取得それから、 "Select * FROM tblspecification"に変更しました。 'SerialNoCubicle =&txtSerialNoCubicle.Value' "は動作しますが、txtserialnocubicle.value = 8のみです。それ以外の部分は動作しません... –

+0

"ちょうど*?それは私たちがあなたを助けるのに役立つかもしれないことを私たちに教えてくれません... –

関連する問題