แสดงกระทู้

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 - PNR

หน้า: 1 ... 5 6 7 [8] 9 10 11 ... 46
127
ตรงส่วนของตั้งค่าหน้ากระดาษของรายงาน
สามารถกำหนด 2 column ได้ครับ แต่หัวเรื่องแบบนั้นจะมีอันเดียวครับ


128


จากตัวอย่างที่ให้มานะคะ อยากได้แบบ ติ๊กถูกที่ช่องด่วนแล้ว  ในตารางช่อง status  อยากให้ขึ้นคำว่าด่วนอะค่ะ

ในคิวรี่หรอครับ
จากตัวอย่างถ้าคุณเปิดฟอร์มขึ้นมา ใส่เลขไอดี ที่ textbox สมมุติใส่ว่า 1 แล้วไปกดติ๊กที่ ช่อง checkbox
เมื่อคุณเปิดตารางมาดูใหม่จะมีคำว่าด่วนปรากฎทุกเรคคอร์ดที่มีไอดี = 1

129
สมมุติ field ด่วน ชื่อ status
โค๊ด: [Select]
รายการในฟอร์ม และ ในตาราง,คิวรี่ ที่เชื่อมกับฟอร์ม และ รายงานที่จะปริ้นซ์ออก ที่ท้ายรายการสั่งสินค้านั้นๆ จะมีคำว่าด่วนปรากฎขึ้นมาอะค่ะถ้าจะอัพเดทรายการต่างๆ เราน่าจะเช็คจาก ID ของตาราง

โดยในตัวอย่างมีฟอร์มที่ออกแบบ ต่างๆ ตามที่คุณทำอยู่ และมีปุ่ม check
และใส่เงื่อนไขว่าถ้าติ๊กก็ใช้ Update Query ไปยังตารางโดยเลือกอัพเดทจาก ID ที่ระบุบนฟอร์ม
ส่วนตัวอย่างดูด้านล่างครับ

130
สามารถใช้ Calculate Field ได้ครับ
ในมุมมองออกแบบตาราง จะมี datatype นี้อยู่

หมายเหตุ
Office ต้อง version 2010 ขึ้นไป
และมีนามสกุลไฟล์ accdb ถึงจะมีให้เลือกครับ

131
ห้อง MS Access / : Random ข้อมูล
« เมื่อ: 25 พ.ค. 64 , 12:35:35 »
ลองดูนะครับ

132
ห้อง MS Access / : Random ข้อมูล
« เมื่อ: 24 พ.ค. 64 , 14:01:06 »
ปุ่มก็ได้ครับ ขอถามเพิ่มครับแล้วถ้าเกิดผมมีเงื่้อนไขเพิ่ม กรณีผมมีฟิวส์ชื่อ monthly เก็บข้อมูลเดือน Jan-Dec และฟิวส์ sex เก็บเพศ ชาย หญิง ความต้องการคือให้กรองข้อมูลเฉพาะเดือน May เพศเลือก ชาย ให้เอาข้อมูล TCC มา Random เขียนแบบไหนครับ

ไม่ยากครับ สร้าง control ไว้ระบุ Criteria ที่ต้องการ เช่นมี คอมโบบ๊อกเลือกเพศ และ เดือน ไว้ระบุเงื่อนไขที่เราต้องการ
แล้วกำหนด recordset ทีหลัง

สร้างข้อมูลตัวอย่างมาครับ
เดี่ยวผมปรับโค๊ดให้

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

ไม่เข้าใจโจทย์ครับ
ให้อธิบายเพิ่ม และมีรูปภาพด้วยยิ่งดีครับ
 :prettiness:

134
ใช้ Append Query ก็ได้ครับ
เช่น

INSERT INTO [ระบุชื่อตาราง] ( รหัสการจ่ายเงิน ) SELECT [forms]![ระบุชื่อฟอร์มหลัก]![txtID] AS txtID;

135
ห้อง MS Access / : Random ข้อมูล
« เมื่อ: 24 พ.ค. 64 , 09:54:46 »
ถ้าใช้การสร้างปุ่มแทนได้ไหมครับ
สมมุติมีตารางตารางชื่อ table1 เก็บข้อมูลตามในรูปของคุณ
ที่ปุ่มใส่โค๊ดนี้เข้าไปครับ


Private Sub Command1_Click()
Dim rstRandom As Recordset
Dim rstOut As Recordset
Set rstRandom = CurrentDb.OpenRecordset("SELECT Table1.TCC, Rnd(Val(Right([TCC],3))) AS ID FROM Table1 ORDER BY Rnd(Val(Right([TCC],3)));", dbOpenDynaset)
Set rstOut = CurrentDb.OpenRecordset("table1", dbOpenDynaset)

rstRandom.MoveFirst
rstOut.MoveFirst
Do Until rstRandom.EOF
rstOut.Edit
rstOut!TCCRANDOM = rstRandom!TCC
rstOut.Update
rstRandom.MoveNext
rstOut.MoveNext
Loop
End Sub

วิธีนี้ใช้ ฟังชั้น RND() เพื่อสุ่มข้อมูลที่ต้องการ แล้วนำไปวางสุ่มในฟิลล์ที่ต้องการครับ

136
ลองสร้างปุ่มขึ้นมาแล้วเอาโค้ดไปวางดูนะครับ

โค๊ด: [Select]
Private Sub Command0_Click()
Dim RecCount As Integer
Dim i, x As Long
Dim rst As dao.Recordset
RecCount = DCount("*", "TempToPrint")

Set rst = CurrentDb.OpenRecordset("TempToPrintWithStickerNo", dbOpenDynaset)
rst.MoveFirst

Do Until rst.EOF Or rst.BOF
For i = 0 To (RecCount - 1)

If i = 0 Then
x = 1
End If

rst.Edit
rst!stickerNo = x
rst.Update

rst.MoveNext
x = x + 1
If x > 52 Then
x = 1
End If

Next i
Loop
End Sub

แล้วดูการรันลำดับที่ตาราง TempToPrintWithStickerNo

137
ผมลองสร้าง รายงานโดย
ที่ตัวรายงานก็ออกแบบโดยใส่ Textbox ไว้ 56 อัน โดยสามารถตั้งชื่อไว้เช่น

L1C1   L1C2    L1C3    L1C4
L2C1   L2C2    L2C3    L2C4
L3C1   L3C2    L3C3    L3C4
...............................L14C4


และในEvent Report_Load ผมใส่โค้ดเข้าไป
โค๊ด: [Select]
Private Sub Report_Load()
Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT [56].l_details, [56].LandC, [56].Print FROM 56 WHERE ((([56].Print)=True));", dbOpenDynaset)
   
    rst.MoveFirst
    Do Until rst.EOF
    If Not IsNull(rst!LandC) Then
    Me(rst!LandC) = rst!l_details
    End If
        rst.MoveNext
    Loop
   
End Sub
โดยเรากำหนด Recordsource ให้เอาเฉพาะ ข้อมูลที่ Print = true หรือถูกติ๊กเลือกอยู่มาเท่านั้น
และใช้ If กำหนด ว่าถ้า LandC นั้นมีอยู่
ก็ให้ textbox  Me(rst!LandC) ที่มีชื่อเหมือนกับ LandC ของตารางนั้นนำค่า l_details ลงไปแสดงที่ textbox นั้น

ไม่แน่ใจว่าท่านต้องการแบบนี้ไหมลองดูตัวอย่างนะครับ

138
The expression you entered has an invalid string.
A string can be up 2048 characters long. including opening and closing quotation marks.
ข้อความนี้บอกให้เราแก้อะไรครับท่าน

ผิดตรงการใช้ " ครับ
เกิดจากการใช้ " มีตัวเปิดแล้ว แต่ไม่ได้มีตัวปิด เช่น "....................
ไม่มีตัวปิดทำให้โปรแกรมหาจุดสิ้นสุดของข้อความไม่เจอ
ต้องมีตัวปิดด้วยเช่น "................"
ถ้าโค้ดไหนมี ERROR ก็ให้ส่งโค้ดนั้นมาดูด้วยครับ จะได้ช่วยแก้ไขให้ได้

139
จากที่ดู LINE X และ COLUMN X เป็นตัวระบุ ตำแหน่งแนวตั้งและแนวนอนของ RecordSorce นั้น

วิธีการที่ให้แสดงเฉพาะ l_details ที่ Print = Yes นั้นสามารถทำได้ครับ ส่วนที่ Print = No ก็ให้ข้ามการแสดงไป
ใช้การ Loop Check ค่าและสั่งให้ไปแสดงในtextbox ที่เราตั้งชื่อเรียงไว้ ตั้งแต่ 1 - 56 ครับ
และที่ตัวรายงานก็ออกแบบจำนวนช่องไว้ทั้ง 56 ช่อง โดยสามารถตั้งชื่อไว้เช่น

L1C1   L1C2    L1C3    L1C4
L2C1   L2C2    L2C3    L2C4
L3C1   L3C2    L3C3    L3C4
...............................L14C4

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

140
คือ ทำฟอร์มขึ้นมา 1 ฟอร์มแล้วบันทึกไว้ในตาราง A
จากนั้นสร้างฟอร์มที่ 2 ขึ้นมาแล้วอยากดึงข้อมูล ID(บันทึกเลขออโต้) ของตาราง A ที่เพิ่งบันทึกไปจากฟอร์มที่แล้วขึ้นมา
ต้องเขียนยังไงคะ  :cry:

ปล.ดึงข้อมูลจากฟอร์มเก่าไม่ได้นะคะ

ใช้ Dmax() กรณีที่ ID คือตัวเลขก็จะได้ ID ที่มีตัวเลขมากที่สุด ลักษณะการใช้งานเช่น
Dmax("ID","[TableA]")

หรือถ้า ID ใน TableA ไม่ใช้ก็เลข ก็ใช้ Dlast เพื่อดึง ID ที่จัดเก็บไว้ล่าสุดมา ลักษณะการใช้งาน
DLast("ID","[TableA]")

141
โค้ดที่ใช้ตอนแรกเอามาจากที่สอนในยูทูป 2 ท่านค่ะ

โค้ดหลายตัวแล้วที่ใช้แล้วไม่ได้ (ทั้งโค้ดบาท,แปลงอักษร,โค้ดปุ่มพิมพ์ ฯลฯ) ต้องได้จากหลายท่านในนี้ เป็นเพราะอะไรคะ ที่เค้าใช้ได้ แต่เราใช้ไม่ได้  ขึ้นอยู่กับเวอร์ชั่น Access หรือว่าอะไรคะ

แล้วพอเมื่อไม่ได้ ก็ไปต่อไม่เป็นค่ะ ถ้าอยากเป็น ต้องเริ่มจากอะไรคะ (ถ้าโค้ดนั้นใช้ไม่ได้ ควรใช้โค้ดไหนยังไง ต้องเรียนรู้จากอะไรคะ )

โค้ดพวกนี้สิ่งที่เราต้องรู้ก่อนก็คือชนิดของข้อมูลครับ เช่น ต้องดูว่า SaleNo นั้นชนิดข้อมูลเป็นอะไร

1.ถ้าเป็นตัวเลข หรือตัวแปรที่เป็นตัวเลข
ถ้าเป็นตัวเลขท่านจะใช้แบบที่ทำอยู่ได้เลย
1.ใส่โค้ดที่ macro Builder คือ
="[rpt_Sale_H2]![SaleNo]=" & [Forms]![fmSale_H]![SaleNo]
หรือ
="[rpt_Sale_H2]![SaleNo]=" & [Forms]![fmSale_H]![SaleNo] & ""

2. ใส่โค้ดที่ code Builder  คือ
if Not isnull(me.SaleNo) Then
DoCmd.OpenReport"rpt_Sale_H2",acViewPreview,,"[SaleNo]=" & me.SaleNo
End if
หรือ
DoCmd.OpenReport"rpt_Sale_H2",acViewPreview,,"[SaleNo]= " & me.SaleNo & ""

2.ถ้าเป็นข้อความ(text)
ปัญหาของข้อความคือต้องมีเครื่องหมาย ' หรือ single quote เพื่อบอกให้โปรแกรมทราบว่าเราอ้างอิง คอนโทรลที่เป็นข้อความ ในกรณี SaleNo ของคุณเก็บข้อมูล 0001 นั้นเป็นข้อความ โค้ดที่ใช้เลยต้องมี single quote ปิดหัวท้ายด้วยเช่น
1.ใส่โค้ดที่ macro Builder คือ
="[rpt_Sale_H2]![SaleNo]= '" & [Forms]![fmSale_H]![SaleNo] & "'"
2. ใส่โค้ดที่ code Builder  คือ
if Not isnull(me.SaleNo) Then
DoCmd.OpenReport"rpt_Sale_H2",acViewPreview,,"[SaleNo]='" & me.SaleNo & "'"
End if
หรือ
DoCmd.OpenReport"rpt_Sale_H2",acViewPreview,,"[SaleNo]='" & [Forms]![fmSale_H]![SaleNo] & "'"

142
ขอปรับเพิ่มนิดหน่อย ให้ยอดรวมแต่ละหมู่ตรงครับ

143
ทำบิลภาษีเสร็จเรียบร้อยแล้วค่ะ

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

เลือก ลูกค้า A เดือนที่แล้ว ออกบิลไปกี่ใบ ก็ขึ้นมาให้พิมพ์ใน 1 หน้ากระดาษ ว่า ลูกค้า A มีบิล เลขที่ xxxxx วันที่ xxxxxxx ยอดเงินรวม xxxxxx

ถ้าอยากได้แบบนี้ คือทำคิวรี่ใช่มั๊ยคะ แล้วต้องจับมาทำยังไง ทำแล้วได้เป็น เลขที่บิล 0001 ขึ้นมา 5 (เพราะบิล 0001 มี 5 รายการ)
ออกแบบฟอร์มไว้เลือกชื่อร้าน และใบกำกับภาษี ส่วนการนำไปออกรายงานเดี่ยวทำให้
ให้แนบไฟล์ตัวอย่างไว้นะครับ

144
ขอบพระคุณอย่างสุดซึ้งค่ะ ได้ผลแล้วค่ะ ขอบคุณอย่างยิ่งค่ะ

รบกวนถามเพิ่มค่ะ

เราสามารถทำแบบใส่โค้ดที่ macro หรือ code Builder เลือกอย่างใดก็ได้ใช่มั๊ยคะ

ใช้ Code builder ได้คับ

หน้า: 1 ... 5 6 7 [8] 9 10 11 ... 46