แสดงกระทู้

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] 2 3 4 ... 44
1
ขอดูโค้ดที่วางในคิวรี่หน่อยคับ
ของคงเหลือนะครับ
หรือ copy code SQL มาดูเลยก็ได้คับ

2
ใช้ IIF เช็คเงือนไขดูครับว่าได้ไหม เช่น

StockPartQOut: IIf(IsNull([StockPart QOut]![SumOfQuanlity]),0,[StockPart QOut]![SumOfquanlity])

3
ตรงส่วนของตั้งค่าหน้ากระดาษของรายงาน
สามารถกำหนด 2 column ได้ครับ แต่หัวเรื่องแบบนั้นจะมีอันเดียวครับ


4


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

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

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

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

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

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

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

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

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

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

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

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

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

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

11
ห้อง 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() เพื่อสุ่มข้อมูลที่ต้องการ แล้วนำไปวางสุ่มในฟิลล์ที่ต้องการครับ

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

โค๊ด: [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

13
ผมลองสร้าง รายงานโดย
ที่ตัวรายงานก็ออกแบบโดยใส่ 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 นั้น

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

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

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

15
จากที่ดู 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 ช่อง มาด้วยเดี่ยวผมเพิ่มโค้ดให้ครับ
ผมพอจะทำได้ครับ

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

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

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

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

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