กระทู้เก่าบอร์ด อ.Yeadram
3,452 28
URL.หัวข้อ /
URL
เขียนโค๊ตอ้างถึง Query
Query ผมเป็นแบบนี้
SELECT Max(Mid([drugCode],2,5)) FROM Drug;
Query ผมไปหารหัสยาสุดท้ายว่าคืออะไร ที่ต้องใช้ MID เพราะรหัส มีอักษรนำ 1 ตัว
คำถามคือ ผมจะเขียนโค๊ต อ้างถึง Query นี้ โดยที่ผมจะไปเก็บเป็น Query จะอ้างโดยใช้
โค๊ตนี้เลย >>SELECT Max(Mid([drugCode],2,5)) FROM Drug;
จะเขียนยังงัยครับ ถ้าไม่เข้าใจ จะอธิบายเพิ่มครับ ขอบคุณครับ
SELECT Max(Mid([drugCode],2,5)) FROM Drug;
Query ผมไปหารหัสยาสุดท้ายว่าคืออะไร ที่ต้องใช้ MID เพราะรหัส มีอักษรนำ 1 ตัว
คำถามคือ ผมจะเขียนโค๊ต อ้างถึง Query นี้ โดยที่ผมจะไปเก็บเป็น Query จะอ้างโดยใช้
โค๊ตนี้เลย >>SELECT Max(Mid([drugCode],2,5)) FROM Drug;
จะเขียนยังงัยครับ ถ้าไม่เข้าใจ จะอธิบายเพิ่มครับ ขอบคุณครับ
28 Reply in this Topic. Dispaly 2 pages and you are on page number 1
2 @R17424
ประมาณว่า
SELECT Max(Mid([drugCode],2,5)) FROM Drug; บรรทัดนี้ เท่ากับ 25
ผมคลิก Botton แล้ว ก่องข้อความ เท่ากับ D26 สมมุติกล่องข้อความชื่อ Dcode
ครับอาจารย์
SELECT Max(Mid([drugCode],2,5)) FROM Drug; บรรทัดนี้ เท่ากับ 25
ผมคลิก Botton แล้ว ก่องข้อความ เท่ากับ D26 สมมุติกล่องข้อความชื่อ Dcode
ครับอาจารย์
3 @R17425
เอิ่ม งงมาก
รบกวนส่งตัวอย่างไฟล์มาให้หน่อยครับ
เอาเฉพาะที่เป็นปัญหานะครับ ข้อมูลอื่นๆ ลบออกได้เลย ไม่ต้องส่งมา
mrtouch999@gmail.com
รบกวนส่งตัวอย่างไฟล์มาให้หน่อยครับ
เอาเฉพาะที่เป็นปัญหานะครับ ข้อมูลอื่นๆ ลบออกได้เลย ไม่ต้องส่งมา
mrtouch999@gmail.com
4 @R17428
ไม่ต้องส่งตัวอย่างหรอกครับ เพราะมันไม่มีอะไรเลย ปกติผมจะทำ Query ขึ้นมา
สมมุติชื่อ qMaxDC โดยใน Query เป็นแบบนี้ >>SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;
ในฟอร์มผมมี กล่องข้อความ สมมุติกล่องข้อความชื่อ Dcode ผมสร้าง ปุ่ม ชื่อ comDC ฝังโคตไว้แบบนี้
Private Sub comDC_Click()
DoCmd.GoToRecord , , acNewRec
Me.Dcode = "D" & Dlookup("[DC]", "qMaxDC") + 1
End Sub
แต่ผมไม่อยากทำ Query เพราะว่าเวลาจะลบฟอร์ม จำไม่ได้ว่าใช้ Query ตัวไหนมั่ง
เลบคิดว่าน่าจะเขียนโคตได้ เช่น
Private Sub comDC_Click()
Dim DCmx As String
DCmx = "SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;"
DoCmd.GoToRecord , , acNewRec
Me.Dcode = "D" & DCmx + 1
End Sub
คือ ไม่รู้ว่าเค้าทำยังงัย แต่เดาๆ เอา แล้วมัน Error ครับ
สมมุติชื่อ qMaxDC โดยใน Query เป็นแบบนี้ >>SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;
ในฟอร์มผมมี กล่องข้อความ สมมุติกล่องข้อความชื่อ Dcode ผมสร้าง ปุ่ม ชื่อ comDC ฝังโคตไว้แบบนี้
Private Sub comDC_Click()
DoCmd.GoToRecord , , acNewRec
Me.Dcode = "D" & Dlookup("[DC]", "qMaxDC") + 1
End Sub
แต่ผมไม่อยากทำ Query เพราะว่าเวลาจะลบฟอร์ม จำไม่ได้ว่าใช้ Query ตัวไหนมั่ง
เลบคิดว่าน่าจะเขียนโคตได้ เช่น
Private Sub comDC_Click()
Dim DCmx As String
DCmx = "SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;"
DoCmd.GoToRecord , , acNewRec
Me.Dcode = "D" & DCmx + 1
End Sub
คือ ไม่รู้ว่าเค้าทำยังงัย แต่เดาๆ เอา แล้วมัน Error ครับ
5 @R17429
ใส่ Code นี้เข้าไปแทน DCmx = "SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;"
Me.RecordSource = SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;
ส่วนบันทัดอื่นไม่แน่ใจครับ เพราะไม่เห็นตัวอย่าง
ใส่ Code นี้เข้าไปแทน DCmx = "SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;"
Me.RecordSource = SELECT Max(Mid([drugCode],2,5)) AS DC FROM Drug;
ส่วนบันทัดอื่นไม่แน่ใจครับ เพราะไม่เห็นตัวอย่าง
6 @R17430
ไม่น่าจะได้ครับ RecordSource ผมใช้จากตาราง Drug เลยครับ
7 @R17431
เออเรอเพราะเครื่องหมาย ; ด้านหลังหรือเปล่าครับ เท่าที่ผมใช้คำสั่ง sql ใน vba ที่ผ่านมา จะไม่ใส่เครื่องหมาย ; นี้ครับ ลองลบออกแล้วรันดูครับ
8 @R17432
DCmx = DMax("Mid(drugCode,2,5)", "Drug")
9 @R17433
ถ้าหมายถึงอยากคิวรี่โดยไม่ต้องสร้างแต่ต้องการผลอย่างเดียว ลองแบบนี้ดูครับ
Dim rs As DAO.Recordset, SQL As String
SQL = "SELECT Max(Int(Mid([drugCode],2,5))) AS DC FROM Drug;"
Set rs = CurrentDb.OpenRecordset(SQL)
Me.Dcode = "D" & rs!DC + 1
rs.Close: Set rs = Nothing
Dim rs As DAO.Recordset, SQL As String
SQL = "SELECT Max(Int(Mid([drugCode],2,5))) AS DC FROM Drug;"
Set rs = CurrentDb.OpenRecordset(SQL)
Me.Dcode = "D" & rs!DC + 1
rs.Close: Set rs = Nothing
10 @R17434
อาจารย์ . มันขึ้น Error ครับ ผมอาจจะเอาไปใส่ไม่ถูก
อาจารย์ TTT ครับ คลิกแล้ว นิ่งครับ เหมือนปุ่มไม่มีคำสั่ง
อาจารย์ TTT ครับ คลิกแล้ว นิ่งครับ เหมือนปุ่มไม่มีคำสั่ง
11 @R17435
errorว่า?
12 @R17436
OK ผมทดสอบแล้วนะครับ
ผมมีตารางชื่อ tblDrug อยู่ ประกอบด้วยฟิลด์ DrugCode,Drugname
ผมสร้างฟอร์มขึ้นมา โดยใช้ตาราง tblDrug นี่แหละ
จานนั้นใส่ปุ่ม 1 ปุ่ม แล้วใส่ Code นี้เข้าไป
Me.RecordSource = "SELECT DrugCode, DrugName FROM tblDrug GROUP BY DrugCode, DrugName ORDER BY Max((Mid([DrugCode],2,5))) DESC;"
ให้อยู่บรรทัดเดียวกันนะครับ
ใช้ได้แน่นอน
ผมมีตารางชื่อ tblDrug อยู่ ประกอบด้วยฟิลด์ DrugCode,Drugname
ผมสร้างฟอร์มขึ้นมา โดยใช้ตาราง tblDrug นี่แหละ
จานนั้นใส่ปุ่ม 1 ปุ่ม แล้วใส่ Code นี้เข้าไป
Me.RecordSource = "SELECT DrugCode, DrugName FROM tblDrug GROUP BY DrugCode, DrugName ORDER BY Max((Mid([DrugCode],2,5))) DESC;"
ให้อยู่บรรทัดเดียวกันนะครับ
ใช้ได้แน่นอน
13 @R17437
อาจารย์ธวัชชัยครับ ผมต้องการให้ เมื่อกดปุ่ม แล้ว
เพิ่มเรคคอดในตารางยา โดยรหัสยามัน เพิ่มขึ้นเองนะครับ ตัวอย่าง
รหัส ชื่อยา
D1 A
D2 B
เมื่อกดปุ่ม มันจะ ขึ้น D3 ให้เอง แบบนี้ครับ
เพิ่มเรคคอดในตารางยา โดยรหัสยามัน เพิ่มขึ้นเองนะครับ ตัวอย่าง
รหัส ชื่อยา
D1 A
D2 B
เมื่อกดปุ่ม มันจะ ขึ้น D3 ให้เอง แบบนี้ครับ
14 @R17438
ลองของอาจารย์ TTT ใหม่ โดยเพิ่ม >>DoCmd.GoToRecord , , acNewRec
ก็ยัง Error ที่ DC (สีแดง) เลยลองไปเพิ่ม DC As Long ก็ยัง Error
Dim rs As DAO.Recordset, SQL As String,DC As Long
SQL = "SELECT Max(Mid([drugCode],2,5)+1) AS DC FROM Drug;"
Set rs = CurrentDb.OpenRecordset(SQL)
DoCmd.GoToRecord , , acNewRec
Me.dCode = "D" & rs!DC
rs.Close: Set rs = Nothing
ก็ยัง Error ที่ DC (สีแดง) เลยลองไปเพิ่ม DC As Long ก็ยัง Error
Dim rs As DAO.Recordset, SQL As String,DC As Long
SQL = "SELECT Max(Mid([drugCode],2,5)+1) AS DC FROM Drug;"
Set rs = CurrentDb.OpenRecordset(SQL)
DoCmd.GoToRecord , , acNewRec
Me.dCode = "D" & rs!DC
rs.Close: Set rs = Nothing
15 @R17439
ลองของอาจารย์ .
Dim DCmx As Long
DCmx = DMax("Mid(drugCode,2,5)", "Drug")
Me.drugCode = "D" & DCmx + 1
คลิกแล้วไม่มีอะไรเกิดขึ้นเลบครับ
ตอนแรกที่ว่า Error เขียนดักให้ฟ้อง Error มันขึ้นเป็น
เครื่องหมาย X อย่างเดียว ไม่มีอะไรแจ้งเลยครับ
Dim DCmx As Long
DCmx = DMax("Mid(drugCode,2,5)", "Drug")
Me.drugCode = "D" & DCmx + 1
คลิกแล้วไม่มีอะไรเกิดขึ้นเลบครับ
ตอนแรกที่ว่า Error เขียนดักให้ฟ้อง Error มันขึ้นเป็น
เครื่องหมาย X อย่างเดียว ไม่มีอะไรแจ้งเลยครับ
16 @R17440
ยอมแพ้ ไม่เข้าใจ
17 @R17441
เอิ่ม! นี่ผมเพิ่งรู้นะนี่ว่าต้องการเพิ่มเรคอร์ด
ผมก็นึกว่าดึงข้อมูลมาแสดง
เฮ้อ!
ผมถึงได้บอกว่าให้ส่งไฟล์มาให้ดู จะได้เข้าใจ (ขอบ่นหน่อยเถอะ อย่าเคืองกันล่ะ)
สรุปแล้วคือคุณต้องการเพิ่มเรคอร์ดใหม่ แบบใส่รหัสยาให้เลยใช่มะ
ทีนี้มีคำถามว่า แล้วรหัสยาที่ใช้มีรูปแบบเป็นอย่างไร
D00001 ไปถึง D99999 ใช่มั๊ย
หรือมีรูปแบบอะไรอีก
ผมก็นึกว่าดึงข้อมูลมาแสดง
เฮ้อ!
ผมถึงได้บอกว่าให้ส่งไฟล์มาให้ดู จะได้เข้าใจ (ขอบ่นหน่อยเถอะ อย่าเคืองกันล่ะ)
สรุปแล้วคือคุณต้องการเพิ่มเรคอร์ดใหม่ แบบใส่รหัสยาให้เลยใช่มะ
ทีนี้มีคำถามว่า แล้วรหัสยาที่ใช้มีรูปแบบเป็นอย่างไร
D00001 ไปถึง D99999 ใช่มั๊ย
หรือมีรูปแบบอะไรอีก
18 @R17442
ขอโทษอาจารย์นะครับ
รูปแบบผมทำได้ ผมอยากได้แค่ ทำอย่างไร ที่ไม่ต้องทำ Query
โดยเอา Query มาในรูป SQL เลย คล้ายๆ แบบของอาจารย์ TTT
แต่วิธี ผมไม่ทราบวิธีครับ
รูปแบบผมทำได้ ผมอยากได้แค่ ทำอย่างไร ที่ไม่ต้องทำ Query
โดยเอา Query มาในรูป SQL เลย คล้ายๆ แบบของอาจารย์ TTT
แต่วิธี ผมไม่ทราบวิธีครับ
19 @R17443
งั้นสิ่งที่ต้องการคือ เมื่อคลิกปุ่มแล้ว ให้ใส่รหัสยาให้อัตโนมัติใช่ไหมครับ
ซึ่งจริงๆ แล้ว ไม่จำเป็นต้องใช้ SQL ก็ได้นะครับ เพราะ SQL มีหน้าที่หลักในการดึงข้อมูลครับ โดยเฉพาะถ้าใช้คำสั่ง SELECT เนี่ยะ
ถ้าใช่แบบนี้แล้วล่ะก็บอกมา เดี๋ยวจะแนะนำให้ใช้วิธีอื่นแทน
ซึ่งจริงๆ แล้ว ไม่จำเป็นต้องใช้ SQL ก็ได้นะครับ เพราะ SQL มีหน้าที่หลักในการดึงข้อมูลครับ โดยเฉพาะถ้าใช้คำสั่ง SELECT เนี่ยะ
ถ้าใช่แบบนี้แล้วล่ะก็บอกมา เดี๋ยวจะแนะนำให้ใช้วิธีอื่นแทน
20 @R17444
อาจารย์ธวัสชัยครับ ผมทำได้แล้วครับ เพียงแต่ว่า
อยากเรียนรู้วิธีใหม่ๆ เพราะมีเงื้อนไขใหม่ๆ ให้อยากทำวิธีนี้
ซึ้ง จะเอาไป ประยุกต์ให้งานดีขึ้น และ ทำอย่างอื่นอีกทีครับ
แต่ถ้ามีวิธีอื่นนอกจากนี้ ผมก็อยากรู้เพิ่มเติมครับ^^
อยากเรียนรู้วิธีใหม่ๆ เพราะมีเงื้อนไขใหม่ๆ ให้อยากทำวิธีนี้
ซึ้ง จะเอาไป ประยุกต์ให้งานดีขึ้น และ ทำอย่างอื่นอีกทีครับ
แต่ถ้ามีวิธีอื่นนอกจากนี้ ผมก็อยากรู้เพิ่มเติมครับ^^
Time: 0.2435s
แต่ที่ไม่เข้าใจคือ กระบวนการว่าต้องการนำ Code นี้ไปใช้กับ Control อะไร และ Event ไหน