กระทู้เก่าบอร์ด อ.Yeadram
3,451 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 2
21 @R17445
ผมยังไม่เคยเห็นอาจารย์ . ยอมแพ้เลยครับ อาจารย์คงยังยุ่ง ไม่มีเวลาเล่นมากกว่านะครับ ^^
22 @R17446
โดยปกติการที่จะรันคำสั่ง sql ใน vba จะต้องใช้คำสั่ง DoCmd.RunSQL คอมไพเลอร์ถึงจะแปลผลได้หรือเปล่า ดังนั้นหากเรา = คำสั่งตามที่ทำ คอมไพเลอร์ก็ไม่น่าจะรู้จักว่ามันคืออะไร ใช่ใหม่ครับ ก็เลยคิดว่าน่าจะสร้างตัวแปลขึ้นมาเก็บค่าที่ใช้คำสั่ง DoCmd.RunSQL เสียก่อนแล้วค่อยนำมาบวกกับ "D" อีกทีหรือเปล่า
23 @R17447
ถ้าใช้วิธีของอาจารย์ TTT น่าจะต้องไปเปิดใช้ DAO ก่อนหรือเปล่า
24 @R17448
ก่อนอื่นต้องขอแจ้งเพื่อทราบก่อนนะครับว่า
ผมชื่อ "ธัชชัย" นะครับ
สำหรับวิธีการมีดังต่อไปนี้นะครับ
1. ที่ฟอร์ม ให้เราใส่ Combo Box เข้าไป ตั้งชื่อว่า cboLastDrugCode
2. ที่ RowSource ให้ใส่ SQL นี้เข้าไป
SELECT Max(Mid([DrugCode],2,5)) FROM tblDrug;
3. กำหนดให้ Visible เป็น No (เพื่อทำการซ่อน) ให้ Combo Box อันนี้
4. สร้างปุ่มขึ้นมา 1 ปุ่ม แล้วใส่ Code นี้เข้าไปครับที่ Event: On Click
Dim MyNewCode
Requery
MyNewCode = cboLastDrugCode.ItemData(0)
MsgBox MyNewCode
ที่เหลือคุณไปจัดการต่อเองนะครับ เพราะคุณได้หมายเลขมากสุดเข้ามาเก็บในตัวแปรชื่อ MyNewCode แล้ว
ผมชื่อ "ธัชชัย" นะครับ
สำหรับวิธีการมีดังต่อไปนี้นะครับ
1. ที่ฟอร์ม ให้เราใส่ Combo Box เข้าไป ตั้งชื่อว่า cboLastDrugCode
2. ที่ RowSource ให้ใส่ SQL นี้เข้าไป
SELECT Max(Mid([DrugCode],2,5)) FROM tblDrug;
3. กำหนดให้ Visible เป็น No (เพื่อทำการซ่อน) ให้ Combo Box อันนี้
4. สร้างปุ่มขึ้นมา 1 ปุ่ม แล้วใส่ Code นี้เข้าไปครับที่ Event: On Click
Dim MyNewCode
Requery
MyNewCode = cboLastDrugCode.ItemData(0)
MsgBox MyNewCode
ที่เหลือคุณไปจัดการต่อเองนะครับ เพราะคุณได้หมายเลขมากสุดเข้ามาเก็บในตัวแปรชื่อ MyNewCode แล้ว
25 @R17449
ขอบพระคุณอาจารย์ ธัชชัย ครับ ชื่อคล้ายๆ ผมเลย
วิธีนี้ ก็โอเคเหมือนกันครับ คล้ายๆ กับที่ผมทำ แต่ดีกว่าตรงที่อยู่ในฟอร์มเดียวกัน
เวลาลบฟอร์มก็หายหมด แต่ผมก็ยังอยากได้แบบเป็น VBA นะครับ มันประยุกต์ได้
มากกว่าครับ
อาจารย์ polo เดี๋ยวผมจะลองแนวคิดอาจารย์ มาทำดูครับ ขอบคุณครับ
วิธีนี้ ก็โอเคเหมือนกันครับ คล้ายๆ กับที่ผมทำ แต่ดีกว่าตรงที่อยู่ในฟอร์มเดียวกัน
เวลาลบฟอร์มก็หายหมด แต่ผมก็ยังอยากได้แบบเป็น VBA นะครับ มันประยุกต์ได้
มากกว่าครับ
อาจารย์ polo เดี๋ยวผมจะลองแนวคิดอาจารย์ มาทำดูครับ ขอบคุณครับ
26 @R17450
งั้นต้องใช้วิธีการของคุณ TTT แล้วล่ะ เพราะเป็นวิธีที่สั่นสุด ง่ายสุด สำหรับ VBA ล้วน
ถ้าใช้ ADODB คำสั่งจะยาวกว่านี้อีก 1 ช่วงตึก
สำหรับวิธีการของคุณ TTT ต้องไปเปิดใช้ DAO ก่อนถึงจะใช้งานได้ครับ
ถ้าใช้ ADODB คำสั่งจะยาวกว่านี้อีก 1 ช่วงตึก
สำหรับวิธีการของคุณ TTT ต้องไปเปิดใช้ DAO ก่อนถึงจะใช้งานได้ครับ
27 @R17451
เอาล่ะวิธีสุดท้ายแล้วครับ
VBA ล้วน และสั้นสุดๆ
ใช้ฟอร์มเดิมจาก R17448
ใส่ปุ่มใหม่ แล้วใส่ Code นี้เข้าไปที่ Event On Click
MyNewDrug = CurrentDb.OpenRecordset("SELECT Max(Mid([DrugCode],2,5)) as myCode FROM tblDrug; ").OpenRecordset.Fields("myCode")
MsgBox MyNewDrug
น่าจะปิด Case ได้นะครับ
VBA ล้วน และสั้นสุดๆ
ใช้ฟอร์มเดิมจาก R17448
ใส่ปุ่มใหม่ แล้วใส่ Code นี้เข้าไปที่ Event On Click
MyNewDrug = CurrentDb.OpenRecordset("SELECT Max(Mid([DrugCode],2,5)) as myCode FROM tblDrug; ").OpenRecordset.Fields("myCode")
MsgBox MyNewDrug
น่าจะปิด Case ได้นะครับ
28 @R17452
จบลงด้วยรูปแบบของอาจารย์ TTT ครับ
ของอาจารย์ธัชชัย ก็ใช้ได้ครับ รูปแบบเหมือนของอาจารย์ TTT
ขอบพระคุณอาจารย์ทุกท่านครับ /|\
Private Sub Add1_Click()
On Error GoTo Add:
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)
DoCmd.GoToRecord , , acNewRec
Me.drugCode = "D" & rs!DC + 1
rs.Close: Set rs = Nothing
Add:
MsgBox Err.Description, vbCritical, "Error"
End Sub
จบลงด้วยรูปแบบของอาจารย์ TTT ครับ
ของอาจารย์ธัชชัย ก็ใช้ได้ครับ รูปแบบเหมือนของอาจารย์ TTT
ขอบพระคุณอาจารย์ทุกท่านครับ /|\
Time: 0.2058s