สมัครสมาชิก

แสดงกระทู้

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
1
ห้อง MS Access / : สอบถามการสร้างฟอร์ม ครับ
« เมื่อ: เมื่อวานนี้ เวลา 14:24:36 »
ลองโหลดไฟล์ท่านปิ่นณรงค์จากกระทู้ > การบันทึกข้อมูลลงตารางจากการใช้แบบฟอร์ม ไปแกะดูครับ ซึ่งจะมีทั้ง
- คีย์ข้อมูลหลายๆข้อมูลในฟอร์ม
- เมื่อกดบันทึกแล้วให้ข้อมูลที่อยู่ในหน้าฟอร์มนั้นหายไปเพื่อรอรับข้อมูลที่จะคีย์เข้าไปใหม่
โพสต์นี้ได้รับคำขอบคุณจาก: superdog

2
ปัญหาของท่านที่ภูมิภาค(GEOGRAPHY) แก้ BoundColumn = 1

แต่ถ้าต้องการให้เก็บภูมิภาคเป็นชื่อ GEOGRAPHY คง BoundColumn = 2 ใว้
มาแก้ Rowsource ของจังหวัดเป็น
โค๊ด: [Select]
SELECT tb_province.province_id, tb_province.Province_th, tb_geography.GEO_NAME FROM tb_province INNER JOIN tb_geography ON tb_province.geo_id = tb_geography.GEO_ID WHERE (((tb_geography.GEO_NAME)=[Forms]![Form1]![Cb_geography]));

อธิบายคือจากการที่เราสั่งให้ภูมิภาคบันทึกเป็นชื่อนั้น > ในส่วนของจังหวัดเราจึงต้องไปสั่งเปลี่ยนรูปแบบค่าที่รับมาด้วยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: buakird

3
--> ขอไฟล์ของท่านมาดูได้หรือไม่ :question:

ท่านเอาไปใช้งานแนวไหนครับ
-> ใว้เพื่อใช้เพิ่มรายชื่อหน่วยงาน
-> ใว้เมื่อเลือกหน่วยงานแล้วกรองตัวเลือกออกมา เช่น กรมป่าไม้ > จังหวัด > อำเภอ > ตำบล > ที่อยู่ > ...

ลองแก้ตัวเลขในช่อง Bound Column หรือยังครับ


New ไฟล์ตัวอย่างที่ผมใช้เพิ่มชื่อที่อยู่ลูกค้า และเรียกมาดูครับ(ต้นฉบับผมเรียกมาใช้งาน)
โพสต์นี้ได้รับคำขอบคุณจาก: buakird, apirak

4
ถ้าคำนวนข้ามวันอย่างนี้คงต้องใส่วันที่เข้าไปด้วยนะครับ


ปล.ผมทำในคิวรี่ ทำไมสั่งคำนวนในเทเบิ้ลไม่ได้ครับนี่
โพสต์นี้ได้รับคำขอบคุณจาก: Nick_1234

5
นำไปใช้ การลงข้อมูล ชื่อ - ที่อยู่ลูกค้า ครับ

ไฟล์ตัวอย่างใช้ Combo box หลายตัว โดยทุกตัวมีความหมายเหมือนกันเพียงแค่เมื่อเลือกแล้วส่งค่ากลับไปยัง Combo box อื่นๆ เอาไปศึกษาแนวทางการนำไปใช้ดูครับ :yuush:
โค๊ด: [Select]
Private Sub Cus_ID_Click()
        Cus_Tax_ID.Value = Cus_ID.Column(9)
        Cus_Name.Value = Cus_ID.Column(1)
        Cus_addess.Value = Cus_ID.Column(2) & "  " & Cus_ID.Column(3) & Cus_ID.Column(4) & "  " & Cus_ID.Column(5) & "  " & Cus_ID.Column(6) & Cus_ID.Column(7) & "  " & Cus_ID.Column(8) '& "."
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

6
ห้อง MS Access / : Missing: Microsoft Excel 14.0 Object Library
« เมื่อ: 07 พ.ค. 62 , 13:38:39 »
vbforums link บอกแนวว่าเครื่องนั้นก็ต้องลง(หรือมี) Ms Excel ด้วยนะครับ

https://stackoverflow.com/questions/10730300/connect-references-toolsreferences-with-vba-code-macros link
โพสต์นี้ได้รับคำขอบคุณจาก: suaccess

7
งงปัญหาของคุณว่าใช้ตรงไหน-อย่างไรถึงใช้ไม่ได้ -->   @ เขียนคำถามให้เข้าใจ จะช่วยให้ได้คำตอบที่ชัดเจนและรวดเร็ว / สามารถอัพโหลดภาพ หรือไฟล์ตัวอย่างได้ที่"ตัวเลือกเพิ่มเติม..."

โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

8
1. ProductIDs ของท่านคืออะไร
2. " [Product]![ProductName]" ลองชิดติดกัน > "[Product]![ProductName]"

สอบถามเรื่อง Dlookup ครับผม
[SOLVED] Default values using DLookup - Access World Forums link
โพสต์นี้ได้รับคำขอบคุณจาก: Phongphak Tongvongtrakul

9
ที่ปุ่มคำนวนของท่านปิ่นณรงค์ใส่ +1ไปครับ
โค๊ด: [Select]
Me.totalDay = DateDiff("d", ([Forms]![TableReport]![BeginDate]), ([Forms]![TableReport]![EndDate]) + 1) & "  วัน"
ปล.ตอบมาแบบ...อ่านะครับ ไม่รู้ใช้คำตอบหรือแนวทางแก้ปัญหาจริงๆใหมช่วยชี้แจงมาด้วยนะครับ(จะได้แจ้งลบ --.--)
โพสต์นี้ได้รับคำขอบคุณจาก: ปิ่นณรงค์, apirak, ittiphol

10
x \ y = จำนวนเต็มของ x / y
x Mod y = เศษเหลือจาก x / y เป็นจำนวนเต็ม

ตัวอย่างการนำไปใช้ (1วัน = 24ชั่วโมง = 1440นาที)

Text1 = 1500 นาที

Text2 = [Text1]\1440          = 1 วัน
Text3 = ([Text1]\60) Mod 24    = 1 ชั่วโมง

หมายเหตุ จากตัวอย่างจะเป็นการปัดเศษนาทีทิ้งทั้งหมดครับ (59นาที=0ชม.)
มาแถม [Text1] Mod 60 = เศษนาทีที่เหลือ
แถม2 Text2 =[Text1]\1440 & " วัน " & ([Text1]\60) Mod 24 & " ชั่วโมง" = 1 วัน 1 ชั่วโมง
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

11
จากเดิมที่ -->
อ้างถึง
*ในเทเบิ้ล "JPMA" มีชื่อคอลัมน์ RGB ซึ่งมันเป็นชื่อซ้ำกับตัวแปลไปแก้เป็นชื่ออื่นซะเป็นอันจบครับ
เมื่อเรามีการแก้ชื่อคอลัมน์ไปนั้น ในฟอร์มที่มีการลิ้งเทเบิ้ลดังกล่าวจะต้องมาทำทีเป็นว่าสั่งลิ้งเทเบิ้ลนั้นใหม่/ที่กล่องข้อความที่มีการลิ้งคอลัมน์ก็เช่นกัน(แม้เราจะเห็นว่ามันเปลี่ยนไปอัตโนมัติแล้วแต่บางที่โปรแกรมมันเอ้อครับ)


ส่วนเรื่องแปลง RGB เป็น HEX แล้วมาใช้โค้ดแปลงกลับมาเป็น RGB อีกนั้นเพื่ออะไรครับ :question:
คือจะบอกว่าที่ท่านใช้ให้อ่าน RGB จากกล่องข้อความมาเลยนั่นล่ะใช้ได้แล้วครับ


ไฟล์ที่ผ่านการแก้ไขชื่อเทเบิ้ลเป็น cRGB และแก้หน้าฟอร์มแล้ว & เปิดใช้สคลิปอ่านค่าสี RGB ของท่านด้วย
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

12
*ในเทเบิ้ล "JPMA" มีชื่อคอลัมน์ RGB ซึ่งมันเป็นชื่อซ้ำกับตัวแปลไปแก้เป็นชื่ออื่นซะเป็นอันจบครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

13
โดยทั่วไป Ms Access จะใช้โค้ดสีที่ต่างจากพวก > Hex / RGB / MS Access Color Values link
แต่สามารถกำหนดใช้เป็น RGB ได้เช่น Me.TextBox.BackColor = RGB(255, 255, 255) เป็นต้น

ดังนั้นการที่จะนำโค้ดสีที่เป็น Hex มาใช้ได้ก็ต้องแปลงให้กลายไปเป็น RGB ก่อนด้วย Module ตัวอย่างของท่านปิ่นณรงค์
หรือ > https://stackoverflow.com/questions/40588470/setting-access-colour-codes-in-vba/50523021#50523021 link
โค๊ด: [Select]
Public Function Color_Hex_To_Long(strColor As String) As Long
    Dim iRed As Integer
    Dim iGreen As Integer
    Dim iBlue As Integer

    strColor = Replace(strColor, "#", "")
    strColor = Right("000000" & strColor, 6)
    iBlue = Val("&H" & Mid(strColor, 1, 2))
    iGreen = Val("&H" & Mid(strColor, 3, 2))
    iRed = Val("&H" & Mid(strColor, 5, 2))

    Color_Hex_To_Long = RGB(iRed, iGreen, iBlue)
End Function

หรือ > https://stackoverflow.com/questions/51292169/how-to-set-background-of-a-form-to-a-hexidecimal-color-in-ms-access-vba link
ซึ่งวิธีนี้สามารถแปลงออกมาได้เลยไม่ต้องใช้โมดูล ผมจึงขอนำไฟล์ตัวอย่างของท่านปิ่นณรงค์มาทดสอบได้ผลตามไฟล์ตัวอย่างครับ
โค๊ด: [Select]
Me.Detail.BackColor = RGB("&H" & Left$(s, 2), _
                          "&H" & Mid$(s, 3, 2), _
                          "&H" & Right$(s, 2))
โค๊ด: [Select]
Me.Detail.BackColor = "&H" & Right$(s, 2) & Mid$(s, 3, 2) & Left$(s, 2)
โพสต์นี้ได้รับคำขอบคุณจาก: sjs, สันติสุข, Kxess, nikorn

14
สวัสดีครับ
เริ่มแรกในรูปแบบผมมองออกไปเป็นแนวการเหมือนทำแบบฟอร์มกรอกที่อยู่แล้วใส่รหัสไปรษณีย์ให้อัติโนมัติ ซึ่งก็จะมีการทำเทเบิ้ลเพื่อแยกแต่ล่ะส่วน(tb_geography,tb_province,tb_amphur,tb_district)ใว้ก่อน
ดังนั้นการที่จะมีชั้นลึกเข้าไปอย่างไม่จำกัดคงจะเป็นไปไม่ได้ ยกเว้นว่าจะออกแบบให้มีเทเบิ้ลเปล่ารอใว้ก่อนตามจำนวนที่คิดว่าจะลึกเข้าไปไม่เกินนี้(และโปรแกรมรองรับด้วยอ่านะ)
โดยในแต่ล่ะเทเบิ้ลนั้นก็ต้องมีการอ้างถึงเทเบิ้ลชั้นก่อนหน้าด้วยเช่น ตำบลนี้ อยู่ในอำเภอนี้ จังหวัดนี้ และภูมิภาคนี้ เป็นต้น เท่ากับว่าถ้าข้อมูลลึกลงไป100ชั้น ในเทเบิ้ลชั้นที่100ก็จะมีการผูกว่าเกี่ยวข้องกับใครบ้างในเทเบิ้ลตั้งแต่ 1-99เลย


ที่นี้เมื่อจะมีการเพิ่มข้อมูลลงไป เช่นว่ามีภูมิภาคใหม่ก็ทำฟอร์มลิ้ง tb_geography เพื่อเพิ่มข้อมูลลงไปตรงๆได้เลย
ถ้าจะเพิ่มตำบลล่ะโอเครว่าลิ้ง tb_district แต่ก็ต้องมีการให้ไล่ใส่ข้อมูลมาตั้งแต่ต้นด้วยว่าอยู่ในภูมิภาค->จังหวัด->อำเภออะไร เป็นต้น :shout:
แต่นี้คือมีการระบุ/คิดใว้ล่วงหน้าก่อนแล้วว่าข้อมูลที่จะเพิ่มเข้าไปนั้นอยู่ในชั้นไหนต้องเปิดฟอร์มใดเพื่อมาเพิ่มข้อมูลนั้นๆ หรือจะให้เป็นว่าเมื่อเปิดดูรายการใดๆแล้วให้แสดงรายการย่อยด้านล่างในฟอร์มย่อยแล้วให้สามารถเพิ่มรายการใหม่สดๆลงไปได้เลยลองหาวิธี,หาแนวทางทำดูครับ

ขอจบแนวทางเบื้องต้น(ประสาคนผ่านมาเห็น)ใว้เพียงเท่านี้ครับ :meaw:
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

15
อ้างถึง
ไม่ให้ช่องภูมิภาคเป็นช่องหลัก , เลือกจังหวัดเสร็จ > ช่องภูมิภาคขึ้นมาให้เลย
ผมขออนุญาตนำไฟล์ของ อ.ปิ่นณรงค์ ไปแก้นะครับ โดย
• เปลี่ยนช่องเลือกภาค(Cb_geography) เป็น TextBox
• จังหวัด
  - column count = 3 , column widths = 0cm;2cm;0cm
  - Data > Row Source =
โค๊ด: [Select]
SELECT tb_province.province_id, tb_province.Province_th, tb_geography.GEO_NAME FROM tb_province INNER JOIN tb_geography ON tb_province.geo_id = tb_geography.GEO_ID;
  - VB ในส่วนของ cb_province_AfterUpdate เพิ่ม     
โค๊ด: [Select]
Me.Cb_geography = cb_province.Column(2)
ปล.ผมก็...เอาอ่านะลองดูจากไฟล์เลยครับ :prettiness:
โพสต์นี้ได้รับคำขอบคุณจาก: ปิ่นณรงค์, buakird

16
ห้อง MS Access / : การใช้คำสั่ง iifซ้อน iif
« เมื่อ: 09 ธ.ค. 61 , 13:21:46 »
ต้องใส่ลูกน้ำคั่นวงเล็บปิดด้วยใหมครับนั้น ตย.ที่ผมใช้ =IIf([do_T15]=True,IIf([15_ราคา2]<>"",[15_ราคา2]+[15_ราคา],"0"),"0")
ปล.ถ้าใช้ ),),),),),),),),),),) คือมันไม่มีอะไรอยู่ข้างในมันจะแปลงร่างให้เป็น ))))))))))) ตามเดิมอยู่ดี ลองเป็น ,[%Efficiancy]),[%Efficiancy]),... แทนดูได้ใหมครับ :sweat:

โค๊ด: [Select]
Eff20Auto:
IIf(Not IsNull([Eff20]),[Eff20],
IIf(Not IsNull([Eff19]),[Eff19],
IIf(Not IsNull([Eff18]),[Eff18],
IIf(Not IsNull([Eff17]),[Eff17],
IIf(Not IsNull([Eff16]),[Eff16],
IIf(Not IsNull([Eff15]),[Eff15],
IIf(Not IsNull([Eff14]),[Eff14],
IIf(Not IsNull([Eff12]),[Eff12],
IIf(Not IsNull([Eff11]),[Eff11],
IIf(Not IsNull([Eff10]),[Eff10],
IIf(Not IsNull([Eff9]),[Eff9],[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
,[%Efficiancy])
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

หน้า: [1] 2