Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > สอบถามปัญหาโค้ด Error จากฟอร์มค้นหาข้อมูลในส่วนของปุ่ม Search



 

สอบถามปัญหาโค้ด Error จากฟอร์มค้นหาข้อมูลในส่วนของปุ่ม Search

 



Topic : 082079

Guest




ทำฟอร์มค้นหาข้อมูลโดยใช้ MS Access ค่ะ ปัญหาคือโค้ดในส่วนของปุ่ม Search เกิด Run-time Error
ข้อความบอกว่า "Data type mismatch in criteria expression" ค่ะ
และขึ้นแถบสีเหลืองตรงโค้ดส่วน Me.subfrm.Form.RecordSource = "SELECT * FROM qryEquipment " & BuildFilter
อันนี้คือโค้ดทั้งหมดในฟอร์มค้นหาค่ะ เลยอยากให้ช่วยตรวจสอบให้หน่อย

ปุ่ม Clear ข้อมูล
Code (VB.NET)
Private Sub cmdClear_Click()
    Dim intIndex As Integer
    
    Me.cbBitRate = 0
    Me.cbNetwork = 0
    Me.cbStatus = 0
    Me.txtNodeName = ""
    Me.txtE1 = ""
    Me.txtSlot = ""
    Me.txtDestination = ""
    Me.txtCustomer = ""
    Me.txtSO = ""
  
End Sub


ปุ่ม Search

Code (VB.NET)
Private Sub cmdSearch_Click()
   
        Me.subfrm.Form.RecordSource = "SELECT * FROM qryEquipment " & BuildFilter
   
    Me.subfrm.Requery
    
End Sub


Code (VB.NET)
Private Sub Form_Load()
    cmdClear_Click
End Sub



Code (VB.NET)
Private Function BuildFilter() As Variant
    Dim varWhere As Variant
    Dim varItem As Variant
    Dim intIndex As Integer

    varWhere = Null  ' Main filter
    
    ' Check for BitRateID
    If Me.cbBitRate > 0 Then
        varWhere = varWhere & "[BitRate] = " & Me.cbBitRate & " AND "
    End If
    
    ' Check for NetworkID
    If Me.cbNetwork > 0 Then
        varWhere = varWhere & "[Network] = " & Me.cbNetwork & " AND "
    End If
    
    ' Check for StatusID
    If Me.cbNetwork > 0 Then
        varWhere = varWhere & "[Status] = " & Me.cbStatus & " AND "
    End If
    
    ' Check for LIKE Node Name
    If Me.txtNodeName > "" Then
        varWhere = varWhere & "[NodeName] LIKE """ & Me.txtNodeName & "*"" AND "
    End If
    
    ' Check for LIKE E1
    If Me.txtE1 > "" Then
        varWhere = varWhere & "[E1] LIKE " & Me.txtE1 & " AND "
    End If
    
     ' Check for LIKE Slot
    If Me.txtSlot > "" Then
        varWhere = varWhere & "[Slot] LIKE " & Me.txtSlot & " AND "
    End If
    
    ' Check for LIKE Destination
    If Me.txtDestination > "" Then
        varWhere = varWhere & "[Destination] LIKE """ & Me.txtDestination & "*"" AND "
    End If
    
    ' Check for LIKE Customer
    If Me.txtCustomer > "" Then
        varWhere = varWhere & "[Customer] LIKE """ & Me.txtCustomer & "*"" AND "
    End If
    
    ' Check for LIKE Service Order
    If Me.txtSO > "" Then
        varWhere = varWhere & "[ServiceOrder] LIKE """ & Me.txtSO & "*"" AND "
    End If
    
    
    ' Check if there is a filter to return...
     If IsNull(varWhere) Then
        varWhere = ""
    Else
        varWhere = "WHERE " & varWhere
        ' strip off last "AND" in the filter
        If Right(varWhere, 5) = " AND " Then
            varWhere = Left(varWhere, Len(varWhere) - 5)
        End If
                   
    End If
    
    BuildFilter = varWhere
End Function


ตรงส่วนที่ Error พอเปลี่ยน query เป็น table ไม่ขึ้น Error ค่ะ แต่ว่าตรง field ที่เป็น FK
มันขึ้นเป็น Number อ่ะค่ะ แต่พอดูใน Query ก็ขึ้นเป็น Text นะคะ
รบกวนช่วยดูให้หน่อยนะคะ ขอบคุณค่ะ



Tag : .NET, Ms Access, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-08-08 16:35:32 By : zigzent View : 1892 Reply : 5
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

มันน่าจะไม่มีค่าครับ ปกติใน Access ถ้าเป็น String จะต้องใส่ WHERE = 'xxx' แต่ถ้า Integer ให้ใช้ WHERE = 123 ลองดูดี ๆ ครับ Error นี้มีอยู่แค่นี้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-08 17:40:28 By : mr.win
 


 

No. 2

Guest


ลองแก้แล้วค่ะ ... ก็ยังแก้ไม่ได้ ลองแก้ให้เป็น

Code (VB.NET)
Private Sub cmdSearch_Click()
    If BuildFilter = "" Then
        Me.subfrm.Form.RecordSource = "SELECT * FROM qryEquipment  " & BuildFilter
    Else
        Me.subfrm.Form.RecordSource = "SELECT * FROM qryEquipment WHERE " & BuildFilter
    End If
    Me.subfrm.Requery
End Sub


แก้ไปแบบงงๆ ค่ะ ไม่ค่อยเข้าใจเท่าไหร่โค้ด VB เท่าไหร่เลยค่ะ TT

เปลี่ยนตรง textbox ให้เป็น single quote ก็ยังไม่ได้อยู่ดี

ไม่รู้ว่าเข้าใจอะไรผิดไปรึเปล่า รบกวนแนะนำอีกครั้งด้วยนะคะ ...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-09 11:24:26 By : zigzent
 

 

No. 3



โพสกระทู้ ( 103 )
บทความ ( 0 )



สถานะออฟไลน์


ลอง Debug โปแกรมดู แล้วเอา statement sql มาใส่ ใน access ดูอะครับ มัน มันดึงได้ไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-09 11:29:46 By : tavada_b
 


 

No. 4

Guest


แก้ไปแก้มามันขึ้น Error ใหม่แล้วค่ะ

Run-time Error '3075' :
Syntax Error (missing Operator) in query expression '[BitRateID] 1'

มันผิดตรงพวก ' ' อะไรพวกนี้อย่างที่คุณ mr.win บอกรึเปล่าคะ ?

คือพอแก้แล้วบางทีหน้าต่าง Error ไม่ขึ้น แต่ค้นหาแล้วข้อมูลก็ไม่ขึ้นเช่นกันค่ะ -*-

คุณ asakabahey รบกวนบอกได้มั้ยคะว่าต้องทำอย่างที่คุณแนะนำยังไง

ไม่ค่อยสันทัด VB จริงๆ ค่ะ ไม่เคยเรียนมาก่อนเลย แต่ต้องใช้ทำโปรเจ็ค

อันนี้ก็ใช้วิธีศึกษาจากในเน็ตฯ ด้วยตัวเอง TT


Code (VB.NET)
Private Sub cmdClear_Click()

    Dim intIndex As Integer
   
    ' Clear all search items
   
    Me.cbBitRate = 0
    Me.cbNetwork = 0
    Me.cbStatus = 0
    Me.txtNodeName = ""
    Me.txtE1 = ""
    Me.txtSlot = ""
    Me.txtDestination = ""
    Me.txtCustomer = ""
    Me.txtSO = ""
   
   
 
End Sub

Private Sub cmdSearch_Click()
   

   
        Me.subfrmSearch.Form.RecordSource = "SELECT * FROM qryEquipment " & BuildFilter
   
Me.subfrmSearch.Requery


End Sub


Private Sub Form_Load()
   
    ' Clear the search form
     cmdClear_Click
   
End Sub

Private Function BuildFilter() As Variant
    Dim varWhere As Variant
    Dim varItem As Variant
    Dim intIndex As Integer

    varWhere = Null  ' Main filter
   
     ' Check for Street
    If Me.cbBitRate > 0 Then
        varWhere = varWhere & " [BitRateID]  " & Me.cbBitRate & " AND "
    End If
   
    ' Check for Area
    If Me.cbNetwork > 0 Then
        varWhere = varWhere & "[NetworkID] " & Me.cbNetwork & " AND "
    End If
   
    ' Check for Town/City
    If Me.cbStatus > 0 Then
        varWhere = varWhere & "[StatusID] " & Me.cbStatus & " AND "
    End If
   
    ' Check for First Name/Initial
    If Me.txtNodeName > "" Then
        varWhere = varWhere & "[NodeName] LIKE """ & Me.txtNodeName & "*"" AND "
    End If
   
    ' Check for Surname
    If Me.txtE1 > "" Then
        varWhere = varWhere & "[E1] " & Me.txtE1 & " AND "
    End If
   
    ' Check for Business Name
    If Me.txtSlot > "" Then
        varWhere = varWhere & "[Slot] " & Me.txtSlot & " AND "
    End If
   
    ' Check for Email Address
    If Me.txtDestination > "" Then
        varWhere = varWhere & "[Destination] LIKE """ & Me.txtDestination & "*"" AND "
    End If
   
    ' Check for House/Flat Number
    If Me.txtCustomer > "" Then
        varWhere = varWhere & "[Customer] LIKE """ & Me.txtCustomer & "*"" AND "
    End If
   
    If Me.txtSO > "" Then
        varWhere = varWhere & "[ServiceOrder] LIKE """ & Me.txtSO & "*"" AND "
    End If
   
     ' Check if there is a filter to return...
    If IsNull(varWhere) Then
        varWhere = ""
    Else
        varWhere = "WHERE " & varWhere
       
        ' strip off last "AND" in the filter
        If Right(varWhere, 5) = " AND " Then
            varWhere = Left(varWhere, Len(varWhere) - 5)
        End If
    End If
 

    BuildFilter = varWhere
   
End Function

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-09 17:00:52 By : zigzent
 


 

No. 5

Guest


ตอนนี้แก้เออเร่อได้แล้วนะคะ

ขอบคุณทุกท่านมากๆ ค่ะ :)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-10 09:33:22 By : zigzent
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามปัญหาโค้ด Error จากฟอร์มค้นหาข้อมูลในส่วนของปุ่ม Search
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่