แสดงกระทู้

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.


Messages - UnKnown

หน้า: [1] 2 3 4 ... 7
1
คำตอบ
โค๊ด: [Select]
Private Sub Select_AfterUpdate()
    CurrentDb.Execute "UPDATE RssmNew_filter SET complete = " & Me.Select & " WHERE เลขที่ใบเบิก = '" & Me.IDNumber & "'", dbFailOnError
    Me.Recalc
End Sub

ขอบคุณวิธีทำจากโพสต์ของ อ.สันติสุข ครับ :love:
: Update ข้อมูล หลาย Record พร้อมกัน
> ขอสอบถามเรื่องการอัพเดทข้อมูลครับ


เลขที่ใบเบิก ใน VBA ก็อบมาใส่เว็บ = àÅ¢·ÕèãºàºÔ¡ ก็อบจากเว็บกลับไปวางใน VBA โดยไม่แก้ก่อนจะเป็น ????????????  :ouch:
โพสต์นี้ได้รับคำขอบคุณจาก: nawahovvp

2



ปล.แล้วลองต่อออกจอทีวีดูหรือยังครับ
ปล2.ตัวอย่างโค๊ดจากเว็บที่ท่าน PNR แนะนำมานั่นก็ดีครับสามารถนำไปใช้ได้ในกรณีตอนเราออกออกแบบฟอร์มแล้วไปแสดงผมบนหน้าจออื่นที่ความละเอียดของหน้าจอไม่เท่ากันตัวโค้ดก็จะทำการย่อหรือขยายออกมาให้สังเกตุที่จุดแดง5จุดที่เขาทำใว้ภาพเล็กสี่เหลือจัตุรัสเมื่อใช้โค้ดจุดแดงกลายเป็นผืนผ้าแต่ตัวหนังสือยังคงเล็กเท่าเดิม
สรุปคือไปตั้งค่าความละเอียดหน้าจอให้เท่ากันหรือใกล้เคียงกันจะเป็นการดีที่สุดครับ
โพสต์นี้ได้รับคำขอบคุณจาก: chai

3
เอ๋ :question: ผมคิดว่าถ้าต่อตรงจากคอมพิวเตอร์ระบบมันจะอ้างอิงจากมาตราส่วนหน้าจอเฉยๆนะครับเช่นจอคอมฯตั้งใว้ที่ 1600x900 จอทีวีก็ตั้ง 1600x900 เท่ากันมันก็จะแสดงผลออกมาเต็มจอเท่ากันแต่ตัวใหญ่ขึ้นเท่านั้นนั่นล่ะครับ (คอมฯ20นิ้วตัว A=10cm. / ทีวี40นิ้วตัว A=20cm.)
ขนาดของหน้าฟอร์มหรือรีพอร์ทที่เราเห็นเป็นเซนติเมตรหรือนิ้วนั้นมันจะมีผลกับการสั่งพิมพ์ออกมาเป็นหลักเท่านั้นครับ
โพสต์นี้ได้รับคำขอบคุณจาก: chai

4
แนวคือเมื่อเลือกตัวเลือกอันไหนแล้วตัวอื่นจะถูกยกเลิกจากนั้นก็จะนำภาพของตัวเลือกนั้นไปแสดงข้างล่างอีกทีใช่หรือไม่ครับ


โค๊ด: [Select]
Option Compare Database

Private Sub SLBoss1_Click()
Call unOption
Me.SLBoss1 = True
Me.Image11.Picture = CurrentProject.Path & "\Pics\" & "card_30021.jpg"
End Sub
Private Sub SLBoss2_Click()
Call unOption
Me.SLBoss2 = True
Me.Image11.Picture = CurrentProject.Path & "\Pics\" & "card_30017.jpg"
End Sub
Private Sub SLBoss3_Click()
Call unOption
Me.SLBoss3 = True
Me.Image11.Picture = CurrentProject.Path & "\Pics\" & "card_30015.jpg"
End Sub
Private Sub SLBoss4_Click()
Call unOption
Me.SLBoss4 = True
Me.Image11.Picture = CurrentProject.Path & "\Pics\" & "card_30011.jpg"
End Sub
Private Sub SLBoss5_Click()
Call unOption
Me.SLBoss5 = True
Me.Image11.Picture = CurrentProject.Path & "\Pics\" & "card_30006.jpg"
End Sub

Sub unOption()
'ชุดคำสั่งเพี่อให้ตัวเลือกทั้งหมดถูกยกเลิก
Dim ctl As Control
    For Each ctl In Me.Controls
     Select Case ctl.ControlType
       Case acOptionGroup, acOptionButton
           ctl.Value = Null
       Case acCheckBox
          ctl.Value = False
    End Select
   Next
   Set ctl = Nothing
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

5
เจอไฟล์ Excel คำนวนดอกเบี้ยเอามาฝากครับโดยแนวทางการคำนวนเขาคือ ใส่เงินต้น,ดอกเบี้ย/ปี,จำนวนงวด โปรแกรมก็จะคำนวนมาให้ว่าจ่ายงวดล่ะเท่าไหร่โดยเท่ากันทุกงวด(ทศนิยมสองตำแหน่ง) เพื่อเป็นแนวทางครับ

ปล.ไฟล์ Excel เขาทำตารางคำนวนเผื่อไว้เฉยๆนะ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

6
จากการไล่ดูพบว่าในบางตารางท่านมีการใช้ชื่อฟิวล์เป็นภาษาไทยครับ เช่น คิวรี่ ManCustomer เชื่อมตาราง CodePAT ในนั้นมีฟิวล์ภาษาไทย
แต่ลองแก้ชื่อฟิวล์ภาษาไทยในทุกตารางแล้วก็ยังใช้ไม่ได้ จึงดึงข้อมูลทั้งหมดไปใส่ในไฟล์ใหม่ถึงจะใช้งานได้ครับ

สรุปที่ผมแก้คือ แก้ชื่อฟิวล์ภาษาไทยในทุกตารางเป็นภาษาอังกฤษ(a1,a2,a.../c1,c2,c...) --> สร้างไฟล์ใหม่แล้วดึงตาราง,คิวรี่,หน้าฟอร์มไปใส่ = combo box ทุกตัวขึ้นรายการตามที่พิมพ์
โพสต์นี้ได้รับคำขอบคุณจาก: sjs, OddyWriter, Kxess, kitisak

7
ผมก็ลองทำหน้าฟอร์มเปล่าๆขึ้นมาใหม่เหมือนกันบางทีก็ได้แต่สุดท้ายก็ไม่ได้ / ลองไปไล่ใส่ References ใน VB ดูก็ยังไม่ได้  :question:
โพสต์นี้ได้รับคำขอบคุณจาก: kitisak

8
วิธีเบื้องต้นที่ผมทราบคือเรากดที่ปุ่มลูกศร▼ของ combo box ก็จะกรองรายการเบื้องต้นมาให้เราเลยครับ(กดก่อนพิมพ์จะเห็นผลตามว่าครับ)
โพสต์นี้ได้รับคำขอบคุณจาก: kitisak

9
ก่อนอื่นเลยจะบอกว่าพยายามอย่าตั้งชื่อฟิวส์เป็นภาษาไทยครับ ตัวอย่างผมขอใช้ Text20 แทน "วันนัดชำระ" ของท่านนะครับ
โค๊ด: [Select]
Private Sub Text20_AfterUpdate()
Dim DatePK As String
DatePK = Me.Text20 - Date
    If DatePK > 30 Or DatePK < 0 Then
    MsgBox "กรุณาเลือกวันที่ " & Date & " - " & Date + 30, vbCritical, "แจ้งเตือน"
    Me.Text20 = Null
    End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: naekkhung

10
ขอตอบตามวิธีที่ผมใช้นะครับนั่นคือ
> CostTruckingSupplier = [ชื่อฟอร์มย่อย].[Form]![Sum CostSup]
> ทำ TextBox ผูกกับตารางที่ต้องการเก็บค่า(แต่สั่งซ่อนไว้ไม่แสดง)
> ทุกปุ่มคำสั่งที่เกี่ยวกับชุดข้อมูลนี้เช่น ปุ่มตัวอย่างก่อนพิมพ์,ปุ่มพิมพ์,ปุ่มปิดฟอร์ม ผมก็จะแอบใส่คำสั่งเข้าไปว่าให้ TextBox.Value = CostTruckingSupplier.Value เพื่อนำค่าไปเก็บใว้ในตารางทีหลังนะ หรือท่านจะใช้เป็น GotFocus,Before,AfterUpdate ก็ได้นะครับลองดู
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

11
ถ้าหากจะใช้การตัดวันที่ ที่ผ่านมาออกไปแสดงเฉพาะวันที่ปัจจุบันเป็นต้นไปยังไม่เคยทำครับ

แต่ถ้าจะใช้การกำหนดเงื่อนไขว่าถ้าเลือกวันที่ๆผ่านมาแล้วให้แจ้งเตือนและให้ระบุใหม่ก็ลองแบบนี้
สมมุติ textbox เลือกวันที่ ชื่อ txtDatePick

Private Sub txtDatePick_AfterUpdate()
If Me.txtDatePick < Date() Then
MsgBox "ไม่สามารถเลือกวันที่ย้อนหลังได้", vbCritical, "แจ้งเตือน"
Me.Text0 = Null
End If
End Sub

ถ้าผมตอบก่อนจะบอกว่า"กรุณาเลือกวันที่ปัจจุบันหรืออนาคต"นะนี่ :shout:
โค๊ด: [Select]
Private Sub Text20_AfterUpdate()
    If Me.Text20 < Date Then
         MsgBox "กรุณาเลือกวันที่ปัจจุบันหรืออนาคต"
    End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: PNR, pattan0013

12
ห้อง MS Access / : ต้องการ export file เป็น zip
« เมื่อ: 23 ก.พ. 64 , 12:49:31 »
จากกระทู้นี้ท่าน pizza_p มีตัวอย่างคำสั่งที่ใช้ 7-zip สำหรับบีบอัดไฟล์และคลายไฟล์ออกมาครับ ส่วนถ้าจะเข้าไปใช้ดาต้าภายในไฟล์เลยทั้งที่ยังบีบอัดอยู่นี่น่าจะไม่ได้นะครับ
https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=5609
โพสต์นี้ได้รับคำขอบคุณจาก: chai, ชวลิต เสนะสุทธิ

13
วิธีการใช้ Left,Mid,Right เพื่อดึงค่าออกมาโดย Left ดึงจากทางซ้าย > ,Mid ก็ดึงจากทางซ้ายแต่มีการเว้นระยะก่อนดึง -- > ,Right ดึงจากทางขวา <

ตัวอย่าง ตัวแปล ABC มีค่า 123456789
Left([ABC ],2)     = 12     / ดึงค่าจากซ้ายสุดมา 2ตัว
Mid([ABC ],3,2)   = 34     / ดึงค่ามาโดยตัวแรกคือตัวที่ 3นับจากซ้ายแล้วนับไปต่ออีก 2ตัว
Mid([ABC ],5,3)   = 567   / ดึงค่ามาโดยตัวแรกคือตัวที่ 5นับจากซ้ายแล้วนับไปต่ออีก 3ตัว
Right([ABC ],2)   = 89     / ดึงค่าจากขวาสุดมา 2ตัว

ตัวอย่าง ท่าน PNR จะใช้ Cdate() เพื่อแปลงตัวเลขให้เป็นวันที่ แต่โดยปรกติตัวแปลวันที่จะมี / คั่นอยู่ท่านจึงใช้ Left,Mid,Right เพื่อแยกตัวแปลแล้วใส่ & "/" & เข้าไปคั่นใว้ดังนี้
ตัวแปล [วันที่ วว/ดด/ปป] เก็บค่า 010164 เมื่อใช้ Left([วันที่ วว/ดด/ปป],2) & "/" & Mid([วันที่ วว/ดด/ปป],3,2) & "/" & Right([วันที่ วว/ดด/ปป],2) = 01/01/64 แปลงเสร็จระบบก็ยังคือเป็นข้อความธรรมดาแค่มี / คั่นอยู่แต่สามารถเอาไปให้ Cdate() บอกว่ามันคือวันที่โดย Cdate(ค่อม...ใว้) (จาก 010164 ตอนนี้ระบบมองออกแล้วว่าเป็นวันที่1 เดือน1 ปี64)

ที่นี้มีต่ออีกว่าถ้าอยากให้มันแสดงผลออกมาเป็นอย่างอื่นเช่น 1 มกราคม 64 , มกราคม 2564 , 01/01/64 อีกที่ล่ะได้ใหม?
คำตอบคือได้โดยใช้ Format() เพื่อนำค่าออกมาแสดงผลในรูปแบบที่เราต้องการเพราะจากที่เราใช้ Cdate() ไปนั้นระบบรู้แล้วว่าตัวไหนคือวันเดือนปีเช่น
Format(CDate(.....),"mmm yy")   = ม.ค. 64
Format(CDate(.....),"mmmm yyyy")   = มกราคม 2564
Format(CDate(.....),"dd/mm/yy")      = 01/01/64

แบบงวดภาษี มกราคม 64
= "งวดภาษีเดือน" & " " & Format(CDate(Left([วันที่ วว/ดด/ปป],2) & "/" & Mid([วันที่ วว/ดด/ปป],3,2) & "/" & Right([วันที่ วว/ดด/ปป],2)),"mmmm yy")

แบบงวดภาษี มกราคม 2564
="งวดภาษีเดือน" & " " & Format(CDate(Left([วันที่ วว/ดด/ปป],2) & "/" & Mid([วันที่ วว/ดด/ปป],3,2) & "/" & Right([วันที่ วว/ดด/ปป],2)),"mmmm yyyy")

สรุปขั้นตอน*โดยต้องใช้ให้ครบ
1.ใช้ Left,Mid,Right หั่นตัวเลขออกมาเป็นส่วนๆแล้วใส่ / เข้าไปคั่นใว้
2.ใช้ Cdate() แปลงค่าจากข้อความ,ตัวเลขธรรมดาให้ระบบคิดว่าเป็นวันที่(โดยข้อความต้องมี / คั่นอยู่ก่อนแปลง)
3.ใช้ Format() นำค่าออกมาแสดงผลในรูปแบบที่เราต้องการเช่น d m yy , dd/mm/yy , mmmm yyyy , mmm d yyyy เป็นต้น

*หมายเหตุ สิ่งที่จะเอาไปให้ Cdate() แปลงเป็นระบบวันที่ได้ดีควรจะต้องมี3ส่วนดังนั้นจากที่
ดด/ปป ใน criteria เป็น 0164 ผลลัพธ์ ได้ มิถุนายน 2443
ผมจึงใส่วันที่ 01 เพิ่มเข้าไปให้ Cdate() ทำงานได้อย่างเต็มรูปแบบ
="งวดภาษีเดือน " & Format(CDate("01/" & Left([งวดภาษี ดด/ปป],2) & "/" & Right([งวดภาษี ดด/ปป],2)),"mmmm yyyy")
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

15
ใช้แบบนี้ดูครับ
="งวดภาษีเดือน " & Format(CDate("01/" & Left([งวดภาษี ดด/ปป],2) & "/" & Right([งวดภาษี ดด/ปป],2)),"mmmm yyyy")
โพสต์นี้ได้รับคำขอบคุณจาก: bc98tj0707

16
ที่บอกว่า"หลังจากอัพเดท"นั้นคือการขึ้นข้อมูลใหม่ใช่หรือไม่ครับ ผมขอตอบเป็นแนวทางดังนี้
1.กล่องข้อความมีแค่อันเดียว เขียนคำสั่งให้ก่อนอัพเดท Copy to Clipboard แล้วหลังอัพเดทก็ Paste from Clipboard to Textbox
VBA Copy to Clipboard, Paste and Clear - wellsr.com link
2.มีกล่องข้อความหลายกล่อง ทำตารางใว้เก็บข้อความจาก Textbox ต่างๆแล้วหลังอัพเดทก็สั่งให้ดึงข้อความจากในตารางที่มีมาใส่ในกล่องข้อความ(แนวทาง)
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

หน้า: [1] 2 3 4 ... 7