กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
401 14
URL.หัวข้อ /
URL
เงื่อนไขการค้นหาข้อมูลเพื่อให้มีการเปลี่ยน SourceObject
เรียนอาจารย์สุภาพและท่านผู้รู้ทุกท่าน
ผมมีเรื่องอยากจะรบกวนปรึกษาครับ
คือว่าผมมีฟอร์มค้นหาข้อมูลชื่อว่า frmSearch ในฟอร์มประกอบด้วย
1.frame ชื่อว่า frameType มี checkbox 3 ตัว
1.1checkAll
1.2checkBook
1.3checkTerm
2.combobox ชื่อว่า cboformat มี 4 แถว
2.1ผู้แต่ง
2.2ชื่อเรื่อง
2.3หัวเรื่อง
2.4คำสำคัญ
3.textbox ชื่อ txtSearch เอาไว้กรอกคำค้น ซึ่งเป็น textbox ที่คิวรี่ใช้อ้างถึงคิวรี่ในตอนออกแบบคิวรี่
4.cmdSearch เมื่อคลิกจะมีโค้ด Form.Refresh
5.subresult เป็น subform ของ frmSearch จะแสดงข้อมูลตามเงื่อนไข
*****************************
ผมไม่ได้ใช้ คำสั่ง SQL มากมาย แต่จะเป็นการใช้เงื่อนไข เพื่อให้มีการเปลี่ยน SourceObject
ของ subresult เท่านั้น
เงื่อนไข
ถ้า เลือก checkBook ร่วมกับ ItemData(0) ของ cboformat ให้
SourceObject ของ subresult เท่ากับ frmBookAuthor
ถ้าไม่ใช่
เลือก checkBook ร่วมกับ ItemData(1) ของ cboformat ให้
SourceObject ของ subresult เท่ากับ frmBookTitle
ฯฯฯฯฯฯลลลลลลลฯฯฯฯฯฯฯ
ผมลองทำดูครับ
Private Sub cmdSearch_Click()
If "Me.CheckBook = True" And "Me.cboFormat.ItemData(0)" Then
Me.subresult.SourceObject = "frmBookAuthor"
Form.Refresh
Eืnd If
End Sub
มันก็เอเรอแล้วครับ
คือผมอยากได้แนวทางครับว่าอย่างที่ผมเล่าให้ฟังมันพอจะเป็นไปได้หรือเปล่า
ขอบคุณครับ
ผมมีเรื่องอยากจะรบกวนปรึกษาครับ
คือว่าผมมีฟอร์มค้นหาข้อมูลชื่อว่า frmSearch ในฟอร์มประกอบด้วย
1.frame ชื่อว่า frameType มี checkbox 3 ตัว
1.1checkAll
1.2checkBook
1.3checkTerm
2.combobox ชื่อว่า cboformat มี 4 แถว
2.1ผู้แต่ง
2.2ชื่อเรื่อง
2.3หัวเรื่อง
2.4คำสำคัญ
3.textbox ชื่อ txtSearch เอาไว้กรอกคำค้น ซึ่งเป็น textbox ที่คิวรี่ใช้อ้างถึงคิวรี่ในตอนออกแบบคิวรี่
4.cmdSearch เมื่อคลิกจะมีโค้ด Form.Refresh
5.subresult เป็น subform ของ frmSearch จะแสดงข้อมูลตามเงื่อนไข
*****************************
ผมไม่ได้ใช้ คำสั่ง SQL มากมาย แต่จะเป็นการใช้เงื่อนไข เพื่อให้มีการเปลี่ยน SourceObject
ของ subresult เท่านั้น
เงื่อนไข
ถ้า เลือก checkBook ร่วมกับ ItemData(0) ของ cboformat ให้
SourceObject ของ subresult เท่ากับ frmBookAuthor
ถ้าไม่ใช่
เลือก checkBook ร่วมกับ ItemData(1) ของ cboformat ให้
SourceObject ของ subresult เท่ากับ frmBookTitle
ฯฯฯฯฯฯลลลลลลลฯฯฯฯฯฯฯ
ผมลองทำดูครับ
Private Sub cmdSearch_Click()
If "Me.CheckBook = True" And "Me.cboFormat.ItemData(0)" Then
Me.subresult.SourceObject = "frmBookAuthor"
Form.Refresh
Eืnd If
End Sub
มันก็เอเรอแล้วครับ
คือผมอยากได้แนวทางครับว่าอย่างที่ผมเล่าให้ฟังมันพอจะเป็นไปได้หรือเปล่า
ขอบคุณครับ
14 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R06166
ลองเอา เขาคู่ ที่บรรทัด if ออกครับ
2 @R06167
ขอบคุณครับคุณมือใหม่(มาบ่อย)
ผมทดสอบตั้งแต่เมื่อวานแล้วครับ เกี่ยวกับเครื่องหมาย "
ถ้าเอาออกจะ ฟ้องหมายเลข 2427
ถ้าไม่เอาออก ฟ้องหมายเลข 13
******
ผมอ่านดูคำถามที่ตัวเองโพสไว้ รู้สึกว่าจะเข้าใจอยากสักหน่อย
หรือท่านผู้รู้ท่านใดสามารถให้ความช่วยเหลือ ได้ก็ช่วยแนะนำด้วยครับ
****
ที่ต้องการให้เปลี่ยนคือฟอร์มแถวนี้ครับ เมื่อเงื่อนไขเป็นจริง
Me.subresult.SourceObject = "frmBookAuthor"
ที่ต้องเปลี่ยนให้แสดงฟอร์มเพราะว่าในฟอร์มจะมีฟิลด์ ที่สามารถคลิกแล้วจะเป็นการเปิดฟอร์มรายละเอียดอีก
ผมจะลองดูวิธีอื่นอีกครับ
ขอบคุณครับ
ผมทดสอบตั้งแต่เมื่อวานแล้วครับ เกี่ยวกับเครื่องหมาย "
ถ้าเอาออกจะ ฟ้องหมายเลข 2427
ถ้าไม่เอาออก ฟ้องหมายเลข 13
******
ผมอ่านดูคำถามที่ตัวเองโพสไว้ รู้สึกว่าจะเข้าใจอยากสักหน่อย
หรือท่านผู้รู้ท่านใดสามารถให้ความช่วยเหลือ ได้ก็ช่วยแนะนำด้วยครับ
****
ที่ต้องการให้เปลี่ยนคือฟอร์มแถวนี้ครับ เมื่อเงื่อนไขเป็นจริง
Me.subresult.SourceObject = "frmBookAuthor"
ที่ต้องเปลี่ยนให้แสดงฟอร์มเพราะว่าในฟอร์มจะมีฟิลด์ ที่สามารถคลิกแล้วจะเป็นการเปิดฟอร์มรายละเอียดอีก
ผมจะลองดูวิธีอื่นอีกครับ
ขอบคุณครับ
3 @R06168
ผมลองใช้ Select Case ครับ ก็ยังใช้ไม่ได้
ผมไม่แน่ใจว่าเครื่องหมายถูกต้องหรือเปล่าครับ
ตรงเช็คค่าว่างใช้ได้ไม่มีปัญหาครับ
**************************************ช่วงนี้ใช้ได้ครับ
Private Sub cmdSearch_Click()
If IsNull(txtSearch) Then
MsgBox "คุณยังไม่ได้กรอกคำค้น" & vbCrLf & " ในช่องคำค้น ", 32, "โปรดทราบ "
subresult.Visible = False
************************************************
Else
Select Case FrameType
Case 1
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(0)
Me.subresult.SourceObject = "frmBookAuthor"
subresult.Visible = True
Form.Refresh
Case 2
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(1)
Me.subresult.SourceObject = "frmABookTitle"
subresult.Visible = True
Form.Refresh
Case 3
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(2)
Me.subresult.SourceObject = "frmBookSubject"
subresult.Visible = True
Form.Refresh
Case 4
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(3)
Me.subresult.SourceObject = "frmBookKeyword"
subresult.Visible = True
Form.Refresh
Case 5
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(0)
Me.subresult.SourceObject = "frmTermpaperAuthor"
subresult.Visible = True
Form.Refresh
Case 6
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(1)
Me.subresult.SourceObject = "frmTermpaperTitle"
subresult.Visible = True
Form.Refresh
Case 7
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(2)
Me.subresult.SourceObject = "frmTermpaperSubject"
subresult.Visible = True
Form.Refresh
Case 8
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(3)
Me.subresult.SourceObject = "frmTermpaperKeyword"
subresult.Visible = True
Form.Refresh
End Select
End If
End Sub
ขอบคุณครับ
ผมไม่แน่ใจว่าเครื่องหมายถูกต้องหรือเปล่าครับ
ตรงเช็คค่าว่างใช้ได้ไม่มีปัญหาครับ
**************************************ช่วงนี้ใช้ได้ครับ
Private Sub cmdSearch_Click()
If IsNull(txtSearch) Then
MsgBox "คุณยังไม่ได้กรอกคำค้น" & vbCrLf & " ในช่องคำค้น ", 32, "โปรดทราบ "
subresult.Visible = False
************************************************
Else
Select Case FrameType
Case 1
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(0)
Me.subresult.SourceObject = "frmBookAuthor"
subresult.Visible = True
Form.Refresh
Case 2
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(1)
Me.subresult.SourceObject = "frmABookTitle"
subresult.Visible = True
Form.Refresh
Case 3
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(2)
Me.subresult.SourceObject = "frmBookSubject"
subresult.Visible = True
Form.Refresh
Case 4
Me.CheckBook = True
Me.cboFormat = Me.cboFormat.ItemData(3)
Me.subresult.SourceObject = "frmBookKeyword"
subresult.Visible = True
Form.Refresh
Case 5
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(0)
Me.subresult.SourceObject = "frmTermpaperAuthor"
subresult.Visible = True
Form.Refresh
Case 6
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(1)
Me.subresult.SourceObject = "frmTermpaperTitle"
subresult.Visible = True
Form.Refresh
Case 7
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(2)
Me.subresult.SourceObject = "frmTermpaperSubject"
subresult.Visible = True
Form.Refresh
Case 8
Me.CheckTermPaper = True
Me.cboFormat = Me.cboFormat.ItemData(3)
Me.subresult.SourceObject = "frmTermpaperKeyword"
subresult.Visible = True
Form.Refresh
End Select
End If
End Sub
ขอบคุณครับ
4 @R06183
จะทำได้หรือเปล่าครับ ไม่มีใครตอบผมเลย
5 @R06189
ลองแก้ตรง Me.cboFormat.ItemData(0) ตามนี้ครับ
If Me.CheckBook = True And Me.cboformat.value =cboFormat.ItemData(0) Then
If Me.CheckBook = True And Me.cboformat.value =cboFormat.ItemData(0) Then
6 @R06203
ขอบคุณครับคุณตุ้มเม้ง สำหรับคำแนะนำ แต่มันยังใช้ไม่ได้ครับ
ไม่รู้ว่าวิธีนี้มันมีข้อจำกัดอะไรหรือเปล่าครับ
ผมจะทำยังไงดีครับ จึงจะสามารถผ่านตรงนี้ได้
ขอบคุณครับ
ไม่รู้ว่าวิธีนี้มันมีข้อจำกัดอะไรหรือเปล่าครับ
ผมจะทำยังไงดีครับ จึงจะสามารถผ่านตรงนี้ได้
ขอบคุณครับ
7 @R06204
ลองเอาตัวอย่างที่ทำมาดูประกอบด้วยครับ
จะได้เห็นภาพกันจริงๆ
และอย่าลืม zip ก่อนนะครับ เพราะพื้นที่เรามีจำกัด และลดลงทุกที
จะได้เห็นภาพกันจริงๆ
และอย่าลืม zip ก่อนนะครับ เพราะพื้นที่เรามีจำกัด และลดลงทุกที
8 @R06205
ผมเพิ่งทำเสร็จพอดีครับ อาจารย์
ขอบคุณครับ
ขอบคุณครับ
9 @R06206
ผมเพิ่งทำเสร็จพอดีครับ อาจารย์
ขอบคุณครับ
ขอบคุณครับ
10 @R06208
ลองเอา
Me.ChkBook = True
ออกจากทุก Case ก่อนครับ
Me.ChkBook = True
ออกจากทุก Case ก่อนครับ
11 @R06211
เรียนท่านอาจารย์สุภาพ ครับ
ผมลองทำตามที่อาจารย์แนะนำ โดยการเอา Me.ChkBook = True และMe.ChkTerm = True ออก แล้วลองทดสอบ ดูรู้สึกว่า
เริ่มมีเค้าลางๆ แล้วครับ ใช้ได้เป็นบางอันครับ
ไม่รู้ว่าจะต้องเพิ่ม Select Case อีกสักอันหรือเปล่าครับ
ผมลองสับเปลี่ยน หลายอย่างแต่ก็ยังไม่ได้ผลครับ
*****
ขอบคุณครับ
ผมลองทำตามที่อาจารย์แนะนำ โดยการเอา Me.ChkBook = True และMe.ChkTerm = True ออก แล้วลองทดสอบ ดูรู้สึกว่า
เริ่มมีเค้าลางๆ แล้วครับ ใช้ได้เป็นบางอันครับ
ไม่รู้ว่าจะต้องเพิ่ม Select Case อีกสักอันหรือเปล่าครับ
ผมลองสับเปลี่ยน หลายอย่างแต่ก็ยังไม่ได้ผลครับ
*****
ขอบคุณครับ
12 @R06213
ผมก็ยังไม่ได้ดูมากนัก แต่สังเกตเห็นว่าในฟอร์มมี options แค่ 3 อัน แต่ select case จะมีถึง 8-9 case ก็เลยงง ส่วน Me.Check... ต่างๆ มาจากไหน ไม่เห็นเลยในฟอร์มนี้
13 @R06214
เรียนท่านอาจารย์สุภาพที่เคารพครับ
คือว่าก่อนที่ผมจะส่งไฟล์ข้อมูล ผมได้ทำงานแก้ไขบ้างส่วนแล้วครับซึ่งอาจจะไม่ตรงกับที่โพสไว้ครับก็เพื่อให้ขนาดไฟล์เล็กลงครับ ต้องกราบขออภัยครับที่ไม่ได้บอกก่อนครับ เครื่องที่ทำงานผมก็รวนด้วยครับทำได้ไม่สะดวกครับ
อีกอย่างหนึ่งผมก็ดูตามตัวอย่างครับ และก็ลองทำดูตามความเข้าใจของผมซึ่งส่วนใหญ่มันใช้ไม่ค่อยได้ครับ ตัวอย่างนี้ผมก็อ่านดูจากกระทู้เก่าๆครับ เอามาผสมกัน ได้บ้างไม่ได้บ้าง ตอนนี้ผมทำได้แค่นี้ครับ
ผมอยากได้แนวทางครับ
ขอบคุณมากครับ
ผมขออนุญาติแนบไฟล์นะครับตัวอย่างครับ
คือว่าก่อนที่ผมจะส่งไฟล์ข้อมูล ผมได้ทำงานแก้ไขบ้างส่วนแล้วครับซึ่งอาจจะไม่ตรงกับที่โพสไว้ครับก็เพื่อให้ขนาดไฟล์เล็กลงครับ ต้องกราบขออภัยครับที่ไม่ได้บอกก่อนครับ เครื่องที่ทำงานผมก็รวนด้วยครับทำได้ไม่สะดวกครับ
อีกอย่างหนึ่งผมก็ดูตามตัวอย่างครับ และก็ลองทำดูตามความเข้าใจของผมซึ่งส่วนใหญ่มันใช้ไม่ค่อยได้ครับ ตัวอย่างนี้ผมก็อ่านดูจากกระทู้เก่าๆครับ เอามาผสมกัน ได้บ้างไม่ได้บ้าง ตอนนี้ผมทำได้แค่นี้ครับ
ผมอยากได้แนวทางครับ
ขอบคุณมากครับ
ผมขออนุญาติแนบไฟล์นะครับตัวอย่างครับ
14 @R06232
ผมได้ทดลองทำได้มาระดับหนึ่งแล้วครับ
โดยเปลี่ยน cmdSearch เป็นอย่างข้างล่างครับ
Private Sub cmdSearch_Click()
If IsNull(txtSearch) Then
MsgBox "คุณยังไม่ได้กรอกคำค้น" & vbCrLf & " ในช่องคำค้น ", 32, "โปรดทราบ "
subresult.Visible = False
ElseIf Me.cboFormat = Me.cboFormat.ItemData(0) Then
Me.subresult.SourceObject = "frmBoAuthor"
subresult.Visible = True
Form.Refresh
ElseIf Me.cboFormat = Me.cboFormat.ItemData(1) Then
Me.subresult.SourceObject = "frmBoTitle"
subresult.Visible = True
Form.Refresh
ElseIf Me.cboFormat = Me.cboFormat.ItemData(2) Then
Me.subresult.SourceObject = "frmBoSubject"
subresult.Visible = True
Form.Refresh
ElseIf Me.cboFormat = Me.cboFormat.ItemData(3) Then
Me.subresult.SourceObject = "frmBoKeyword"
subresult.Visible = True
Form.Refresh
End If
End Sub
แต่จะให้มันใช้งานร่วมกับ กลุ่มของ FrameType ซึ่งประกอบด้วย chkAll chkBook chkTerm ได้ยังครับ
ขอบคุณครับ
โดยเปลี่ยน cmdSearch เป็นอย่างข้างล่างครับ
Private Sub cmdSearch_Click()
If IsNull(txtSearch) Then
MsgBox "คุณยังไม่ได้กรอกคำค้น" & vbCrLf & " ในช่องคำค้น ", 32, "โปรดทราบ "
subresult.Visible = False
ElseIf Me.cboFormat = Me.cboFormat.ItemData(0) Then
Me.subresult.SourceObject = "frmBoAuthor"
subresult.Visible = True
Form.Refresh
ElseIf Me.cboFormat = Me.cboFormat.ItemData(1) Then
Me.subresult.SourceObject = "frmBoTitle"
subresult.Visible = True
Form.Refresh
ElseIf Me.cboFormat = Me.cboFormat.ItemData(2) Then
Me.subresult.SourceObject = "frmBoSubject"
subresult.Visible = True
Form.Refresh
ElseIf Me.cboFormat = Me.cboFormat.ItemData(3) Then
Me.subresult.SourceObject = "frmBoKeyword"
subresult.Visible = True
Form.Refresh
End If
End Sub
แต่จะให้มันใช้งานร่วมกับ กลุ่มของ FrameType ซึ่งประกอบด้วย chkAll chkBook chkTerm ได้ยังครับ
ขอบคุณครับ
Time: 0.0939s