1
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
หน้า: [1]
2
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 23 เม.ย. 63 , 12:31:34 »อาจารย์แนะนำทีครับผมควรทำใงครับ มันขึ้นฟ้องได้ แต่จะสามารถ เบิกได้ครับแลมีค่าติดลบอยู่
ผมสงสัยครับว่าคุณไปสร้างการลบตรงส่วนไหน
ถ้าเราใช้การเช็คแบบนี้
เราคงต้องแก้ไปเป็นแบบนี้
if me.TextAmt> me.Text_remain then
msgbox "คงเหลือไม่พอให้เบิก"
me.TextAmt = null
else
me.Text_remain = DSum("[จำนวน]","[รายการนำเข้าสินค้า]","[รหัสสินค้า]=" & [txt_รหัสสินค้า])-Nz(DSum("[จำนวนสินค้า]","[รายการสินค้า]","[รหัสสินค้า]=" & [txt_รหัสสินค้า]))
end if
ความน่าจะเป็นคือ
ถ้าไม่ผ่านเงื่อนไข
เมื่อรายการเบิกมากกว่าจำนวนที่มี ต้องแจ้งเตือนและให้แสดงรายการเบิกเดิมที่มีขึ้นมา และลบค่าที่กรอกใน TextAmt เพื่อให้กรอกค่าใหม่
ส่วนกรณีเงื่อนไขผ่าน
ก็ให้ทำการคำนวนค่าได้
ปล.ลบสูตรคำนวนที่ ControlSource ของ Text_remain ออกไปก่อนนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
3
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 23 เม.ย. 63 , 10:43:49 »
ผมลืมไปของท่าน ติด File dll ทำให้ไม่สามารถทำอะไรได้เลยครับ
คราวก่อนก็เป็น
คราวก่อนก็เป็น
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
4
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 23 เม.ย. 63 , 07:45:05 »
ส่งตัวอย่างมาทาง inbox ผมดูให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
5
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 22 เม.ย. 63 , 12:22:17 »
สมมุติ TextBox ที่คำนวณคงเหลือ ชื่อ Text_remain และ TextBox ที่คีย์จำนวนเบิกชื่อ TextAmt
if TextAmt> Text_remain then
msgbox "คงเหลือไม่พอให้เบิก"
else
// ทำการเบิก
end if
if TextAmt> Text_remain then
msgbox "คงเหลือไม่พอให้เบิก"
else
// ทำการเบิก
end if
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
6
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 22 เม.ย. 63 , 10:39:04 »ทำบนฟอร์มหรือเปล่าครับ ที่จริงแล้ว ไม่ใช่แค่สินค้ามีค่าเป็น 0 นะครับ
วิธีการผมว่าน่าจะสร้างการเปรียบเทียบจำนวนคงเหลือ กับ จำนวนเบิกด้วย เช่น
สินค้าคงเหลือ = 3 แต่เบิก = 5 แบบนี้ก็ไม่ได้อยู่แล้ว มันติดลบ
ใช้ IF check ก็ได้เช่น
IF สินค้าเบิก > สินค้าคงเหลือ or สินค้าเบิก = "0" Then
msgbox "ไม่สามารถเบิกได้เกินจำนวนที่มีอยู่ คงเหลือปัจจุบัน" & สินค้าคงเหลือ & " อัน"
End if
แบบนี้ก็ได้นะครับ ไม่ยุ่งยากด้วย
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
7
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 22 เม.ย. 63 , 10:19:16 »
ทำบนฟอร์มหรือเปล่าครับ ที่จริงแล้ว ไม่ใช่แค่สินค้ามีค่าเป็น 0 นะครับ
วิธีการผมว่าน่าจะสร้างการเปรียบเทียบจำนวนคงเหลือ กับ จำนวนเบิกด้วย เช่น
สินค้าคงเหลือ = 3 แต่เบิก = 5 แบบนี้ก็ไม่ได้อยู่แล้ว มันติดลบ
ใช้ IF check ก็ได้เช่น
IF สินค้าเบิก > สินค้าคงเหลือ or สินค้าเบิก = "0" Then
msgbox "ไม่สามารถเบิกได้เกินจำนวนที่มีอยู่ คงเหลือปัจจุบัน" & สินค้าคงเหลือ & " อัน"
End if
วิธีการผมว่าน่าจะสร้างการเปรียบเทียบจำนวนคงเหลือ กับ จำนวนเบิกด้วย เช่น
สินค้าคงเหลือ = 3 แต่เบิก = 5 แบบนี้ก็ไม่ได้อยู่แล้ว มันติดลบ
ใช้ IF check ก็ได้เช่น
IF สินค้าเบิก > สินค้าคงเหลือ or สินค้าเบิก = "0" Then
msgbox "ไม่สามารถเบิกได้เกินจำนวนที่มีอยู่ คงเหลือปัจจุบัน" & สินค้าคงเหลือ & " อัน"
End if
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
8
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 22 เม.ย. 63 , 09:11:09 »
คำถามไม่เคลียร์ก็ทำให้คนตอบ ตอบยากนะครับ ควรอธิบายที่มาให้ซักหน่อย ว่าคุณทำอะไร ปัญหาคืออะไร อยากได้คำตอบอะไร รูปประกอบ, code ก็สำคัญนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
9
ห้อง MS Access / : หากไม่ต้องการให้จำนวนของ ติดลบ -1 ผมควรเขียนแบบไหนครับ อาจารย์
« เมื่อ: 21 เม.ย. 63 , 22:56:14 »
คือคำถามคุณกว้างมากจนไม่รู้จะตอบอย่างไร
ก่อนอื่นคุณต้องถามตัวเองก่อนว่าถ้าไม่ต้องการให้ติดลบแล้วต้องการอย่างไรต่อครับ
1. ต้องการว่าถ้าค่าติดลบ แล้วให้แสดงเป็น 0 แทน
2. ต้องการว่าถ้าค่าติดลบแล้วให้ใส่ข้อมูลนั้นไม่ได้
3. ต้องการว่าถ้าค่าที่จะใส่แล้วทำให้ติดลบ ก็แนะนำว่าให้ใส่ค่าอะไรที่จะพอดีออกมาเป็น 0 แทน
อันนี้ผมคิดแบบฉุกเฉินก็ได้ตั้ง 3 แบบ แล้ว ดังนั้นต้องตอบตรงนี้ให้ได้ก่อนครับ ถึงจะสามารถตอบต่อได้
ก่อนอื่นคุณต้องถามตัวเองก่อนว่าถ้าไม่ต้องการให้ติดลบแล้วต้องการอย่างไรต่อครับ
1. ต้องการว่าถ้าค่าติดลบ แล้วให้แสดงเป็น 0 แทน
2. ต้องการว่าถ้าค่าติดลบแล้วให้ใส่ข้อมูลนั้นไม่ได้
3. ต้องการว่าถ้าค่าที่จะใส่แล้วทำให้ติดลบ ก็แนะนำว่าให้ใส่ค่าอะไรที่จะพอดีออกมาเป็น 0 แทน
อันนี้ผมคิดแบบฉุกเฉินก็ได้ตั้ง 3 แบบ แล้ว ดังนั้นต้องตอบตรงนี้ให้ได้ก่อนครับ ถึงจะสามารถตอบต่อได้
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
10
ห้อง MS Access / : อยากให้ ปุ่ม Button ยังอยู่ในสภาพเมื่อมีการเปิด from ใหม่
« เมื่อ: 06 เม.ย. 63 , 12:01:19 »
1.ท่านสั่งให้มันจำค่าต่างๆ(รหัส,วันที่สั่ง,...)ใว้ที่ Table ไหนก็ไปเพิ่มให้มันจำสถานะปุ่มใว้ด้วยนะ
2.เมื่อเปิดฟอร์มมาก็สั่งให้ตรวจสอบแล้วสั่งให้ปุ่มมีผลตามค่านั้น
ปล.ไม่รู้ว่าท่านสั่งให้ปุ่มชื่อ DM500 มาจากไหนอ่านะครับผมจึงสั่งให้ฟอร์มเป็นตัวกำหนด
2.เมื่อเปิดฟอร์มมาก็สั่งให้ตรวจสอบแล้วสั่งให้ปุ่มมีผลตามค่านั้น
ปล.ไม่รู้ว่าท่านสั่งให้ปุ่มชื่อ DM500 มาจากไหนอ่านะครับผมจึงสั่งให้ฟอร์มเป็นตัวกำหนด
โค๊ด: [Select]
Private Sub Form_Current()
If Me.Check_cb_no1 = True Then
Me.cb_no1.Caption = "DM500"
Me.cb_no1.BackColor = vbYellow
Me.cb_no1.Enabled = True
Else
Me.cb_no1.Caption = "Lock"
Me.cb_no1.BackColor = vbRed
Me.cb_no1.Enabled = False
End If
End Sub
Private Sub cb_no1_Click()
If Me.cb_no1.Caption = "DM500" Then
Me.cb_no1.Caption = "Lock"
Me.cb_no1.BackColor = vbRed
Me.cb_no1.Enabled = False
Me.Check_cb_no1 = False
End If
End Sub
Private Sub cb_no2_Click()
Me.cb_no1.Caption = "DM500"
Me.cb_no1.BackColor = vbYellow
Me.cb_no1.Enabled = True
Me.Check_cb_no1 = True
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
11
ห้อง MS Access / : วิธี สร้าง Query เพื่อให้ copy file ใน table
« เมื่อ: 02 เม.ย. 63 , 15:37:38 »สมมุติ
T เป็นชื่อเทเบิล
PO เป็นชื่อฟิลด์รหัสใบสั่งซื้อ
CD เป็นชื่อฟิลด์รหัสสินค้า
QTY เป็นชื่อฟิลด์จำนวนสินค้า
insert into T (PO, CD, QTY) select 127, CD, QTY from T where PO = 463
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
12
ห้อง MS Access / : Access พบปัญหาเข้าใช้ฐานข้อมูลไม่ได้ ควรแก้ไขแบบไหนครับ
« เมื่อ: 13 มี.ค. 63 , 12:53:47 »
ลองทำการ compact-repair ดูก่อนว่าหายไหม
หรือลองดู แบบนี้ว่าแก้ได้ไหม

ถ้ายังไม่ได้อีก ให้ Backup File ต้นฉบับไว้ Copy มาซัก 1 อัน
เปิดไฟล์ใหม่ขึ้นมาสร้าง Module แล้วใส่ Codeนี้เข้าไป
ต่อไปกด Ctrl+G แล้วใส่ FixBadAOIndex("ตำแหน่งไฟล์ที่เสียหายตั้งอยู่")
เช่น FixBadAOIndex("C:\MyPath\MyFile.mdb")
หรือส่งไฟล์เจ้าปัญหา มาทาง Inbox ผมแก้ไขให้
หรือลองดู แบบนี้ว่าแก้ได้ไหม
ถ้ายังไม่ได้อีก ให้ Backup File ต้นฉบับไว้ Copy มาซัก 1 อัน
เปิดไฟล์ใหม่ขึ้นมาสร้าง Module แล้วใส่ Codeนี้เข้าไป
โค๊ด: [Select]
Sub FixBadAOIndex(BadDBPath As String)
' <BadDBPath> is the path to the corrupt database.
Dim dbBad As DAO.Database
Dim tdf As DAO.TableDef
Dim ix As DAO.Index
Set dbBad = DBEngine.OpenDatabase(BadDBPath)
dbBad.Execute "DELETE FROM MSysAccessObjects " & _
"WHERE ([ID] Is Null) OR ([Data] Is Null)", _
dbFailOnError
Set tdf = dbBad.TableDefs("MSysAccessObjects")
Set ix = tdf.CreateIndex("AOIndex")
With ix
.Fields.Append .CreateField("ID")
.Primary = True
End With
tdf.Indexes.Append ix
Set tdf = Nothing
dbBad.Close
Set dbBad = Nothing
End Sub
ต่อไปกด Ctrl+G แล้วใส่ FixBadAOIndex("ตำแหน่งไฟล์ที่เสียหายตั้งอยู่")
เช่น FixBadAOIndex("C:\MyPath\MyFile.mdb")
หรือส่งไฟล์เจ้าปัญหา มาทาง Inbox ผมแก้ไขให้
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
13
ห้อง MS Access / : หากต้องการทำปุ่ม XXXX แล้วมีสินค้า 10 รายการ ควรทำใงครับชี้แนะด้วยครับ
« เมื่อ: 25 ก.พ. 63 , 14:26:13 »
ผมสมมุติว่า รายการ เราใส่ในตารางแบบนี้

เราสามารถสร้างปุ่มไว้ก่อนแล้วแสดงรายการจาก combobox หลังจากกดcombobox ประมาณนี้ครับ เช่น
สมมุติ combobox ชื่อ Combo1 เราอยากแสดงไอดีไหนบ้าง สมมุติอยากให้ แสดงรายการที่ 1 2 3 ก็กำหนด ตรง where clause เอาครับ
Private Sub Command0_Click()
Me.Combo1.SetFocus
Me.Combo1.RowSourceType = "Table/Query"
Me.Combo1.RowSource = "SELECT Table1.ID, Table1.List FROM Table1 WHERE (((Table1.ID)=1 Or (Table1.ID)=2 Or (Table1.ID)=3));"
Me.Combo1.Dropdown
End Sub
combobox ก็จะแสดง รายการ ที่มีไอดี 1 2 3 คือ แปรงสีฟัน / สบู่ / ยาสระผม เป็นต้น
เราสามารถสร้างปุ่มไว้ก่อนแล้วแสดงรายการจาก combobox หลังจากกดcombobox ประมาณนี้ครับ เช่น
สมมุติ combobox ชื่อ Combo1 เราอยากแสดงไอดีไหนบ้าง สมมุติอยากให้ แสดงรายการที่ 1 2 3 ก็กำหนด ตรง where clause เอาครับ
Private Sub Command0_Click()
Me.Combo1.SetFocus
Me.Combo1.RowSourceType = "Table/Query"
Me.Combo1.RowSource = "SELECT Table1.ID, Table1.List FROM Table1 WHERE (((Table1.ID)=1 Or (Table1.ID)=2 Or (Table1.ID)=3));"
Me.Combo1.Dropdown
End Sub
combobox ก็จะแสดง รายการ ที่มีไอดี 1 2 3 คือ แปรงสีฟัน / สบู่ / ยาสระผม เป็นต้น
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
14
ห้อง MS Access / : สอบถามอาจารย์ ช่วยชี้แนะด้วยครับ
« เมื่อ: 24 ก.พ. 63 , 16:42:00 »
ในช่อง Criteria ให้ใส่ Like A* ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
15
ห้อง MS Access / : สอบถามอาจารย์ ช่วยชี้แนะด้วยครับ
« เมื่อ: 24 ก.พ. 63 , 16:10:28 »
ใช้คำสั่ง Like ใน Query
โพสต์นี้ได้รับคำขอบคุณจาก: Eakaluk Sansila
หน้า: [1]