แสดงกระทู้

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 - ปิ่นณรงค์

หน้า: 1 ... 25 26 27 [28] 29 30 31 32
487
ห้อง MS Access / > การ SUM Unbound Textbox บนForm Footer
« เมื่อ: 20 เม.ย. 61 , 17:17:22 »
=DSum("[ชื่อTextboxที่จะคำนวน]","[ชื่อตารางหรือคิวรี่]")
ใช้ Dsum แทนนะครับ

488
ห้อง MS Access / > การ SUM Unbound Textbox บนForm Footer
« เมื่อ: 20 เม.ย. 61 , 13:12:37 »
สร้าง Unbound Textbox เพื่อใส่ค่า
แล้วนำไปแสดงในแถวของส่วน Detail
จากนั้นนำไปคำนวนค่าSUM ใน Form footerต่อ แต่ข้อมูล#Error

อยากทราบว่าสามารถคำนวนได้ไหมคะ
ใช้สูตร Sum([textbox])

ใช้
โค๊ด: [Select]
=Sum(Nz([textbox],0))ดูครับ

489
มีไฟล์ตัวอย่างไหมครับ

490
ห้อง MS Access / > Val กับ Cdbl ใช้ยังงัยครับ
« เมื่อ: 19 เม.ย. 61 , 16:43:54 »
Val  กับ  Cdbl  ใช้ยังงัยครับ

ใช้ในกรณีที่ต้องการเปลี่ยนค่าของ นิพจน์ แปลเป็นค่าที่เฉพาะเจาะจง
Cdbl คือการเปลี่ยน นิพจน์ให้เป็น Double ครับ
ยกตัวอย่าง ผมกำหนด Integet กับ Double เพื่อให้เห็นความแตกต่าง
Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble แสดงค่าเป็น  Double.
MyInt = CInt(MyDouble)    ' MyInt แสดงค่าเป็น 2346. คือ Integer

ตัวอย่าง Val กำหนดตัวแปร
Dim MyInt, MyVar
MyInt = 1554    ' MyInt คือค่าจำนวนเต็มตัวเลข หรือว่า Integer.
MyVar = CVar(MyInt & "0000")   จะเห็นได้ว่าเราแทนค่าตัวแปร Var = 0000 ออกมา
MyVar จะแสดงผลออกมาดังนี้ 15540000.
ในกรณีที่จะ ใช้ในการคำนวนยกตัวอย่างเชื่อ
มีชื่อมูลตัวเลข ที่เราเก็บไว้ใน Record เป็น Sting
ชื่อ text 1 = 1.5 และ text 2 = 6.1 ผลการรวทที่ได้ กรณี text1+text2 คือ 1.56.1
ซึ่งเมื่อเราต้องการคำนวน แล้วให้แสดงค่าเป็น  Double ต้องกำหนดดังนี้
(CDbl(text1)) + (CDbl(text1)) ผลที่ได้คือ 7.7 นั้นเอง

ยังมีการเปลี่ยนค่าของ นิพจน์ แปลเป็นค่าที่เฉพาะเจาะจง
ซึ่งยังมี อีกหลายรูปแบบด้วยกันดังนี้

CBool  Boolean   สตริงที่ที่ถูกต้องหรือนิพจน์ใด ๆ

CByte  ไบต์  0 ถึง 255

CCur สกุลเงิน -922,337,203,685,477.5808 เพื่อ 922,337,203,685,477.5807

CDate  วันที่  นิพจน์วันที่ที่ถูกต้องใด ๆ

CDbl  Double

CDec  เลขฐานสิบ
+/ 79,228,162,514,264,337,593,543,950,335 สำหรับศูนย์ปรับขนาดตัวเลข นั่นคือ ตัวเลข โดยไม่มีจุดทศนิยม สำหรับตัวเลขที่มีตำแหน่งทศนิยม 28 คือช่วง
+/ 7.9228162514264337593543950335 หมายเลขที่ไม่ใช่ศูนย์เป็นไปได้น้อยที่สุดคือ 0.0000000000000000000000000001

CInt  จำนวนเต็ม  -32768 ถึง 32767 แทนเศษส่วนจะถูกปัดเศษ

CLng ความยาว   -2147483648 เพื่อ 2147483647 แทนเศษส่วนจะถูกปัดเศษ

CSng  เดี่ยว  -3.402823 e 38 ถึง - 1.401298 e-45 สำหรับค่าลบ 1.401298 e-45 ถึง 3.402823 e 38 สำหรับค่าบวก

CStr สตริง ส่งกลับค่าสำหรับ CStr ขึ้นอยู่กับอาร์กิวเมนต์นิพจน์

CVar ตัวแปร ช่วงเดียวกันเป็นคู่สำหรับ numerics ช่วงเดียวกันเป็นสตริงที่สำหรับ numerics ไม่ใช่

491
นำไปใว้ในปุ่มสถานะ Click

โค๊ด: [Select]
Me.Filter = "[DateA] Between Forms.FinalOutput.DateFrom And Forms.FinalOutput.DateTo"
Me.FilterOn = True


หรือ จะใช้  DoCmd.ApplyFilter ก็ทำได้ ตัวอย่างตามนี้ครับ
โค๊ด: [Select]
DoCmd.ApplyFilter , "[DateA] Between Forms.FinalOutput.DateFrom And Forms.FinalOutput.DateTo"
ตัวอย่างด้านล่าง

492
ไม่ต้องอ้างคำสั่ง form!... แล้วคับ ใส่ชื่อ control ที่ ระบุวันที่ได้เลย

493
ห้อง MS Access / > การใช้ Not in
« เมื่อ: 19 เม.ย. 61 , 09:44:10 »
ถ้าใส่ตรง Criteria ใส่ง่ายๆ แบบนี้แทนได้ไหม
โค๊ด: [Select]
Not "TRACTOR-L" and Not "TRACTOR-M" and Not "TRACTOR-B" and Not "DC-95" and Not  "DC-70"

494
ขอดู Code ที่ใช้หน่อยครับ
Command Button ที่ Error

496
ปกติแล้ว เมื่อมีการลงข้อมูลไปแล้ว และ Primary Key RUN แล้ว ข้อมูลถูกบันทึกเข้าไปแล้วหรือไม่ครับ จำเป็นหรือไม่ที่จะต้องกดบันทึกอีกครั้ง
ถ้า Bound Control กับ Record ของตาราง เมื่อย้าย ไปยัง Control อื่นๆ ก็คงจะบันทึกลง Record อัตโนมัติครับ

497
ขอบคุณครับ คุณ Newbies ผมก็เป็นมือใหม่หัดลองผิดลองถูกเขียนขึ้นมาเอง เลยอาจจะหล่ะหลวมบางจุด
ข้อ 1 , 2 และ 3 ไม่มีจุดไหนที่สามารถลบได้คัรบ ส่วนข้อ 4 และ 5 ผมคงต้องเข้าไปดูอีกทีครับ

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

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

498
สอบถามครับ
ผมทำระบบงานบันทึกด้วย Access มีผู้ใช้งานร่วมกัน 4 คน ทำการบันทึกข้อมูลไปเรื่อย ๆ ปริ้นงานออกมาของแต่ละ Record ปกติ
แต่เมื่อเข้าไปดูที่ฐาน (ผ่านไประยะหนึ่ง) บาง Record ไม่มีอยู่ในฐานครับ หาสามาเหตุไม่ได้ว่าเพราะอะไร
เป็นไปได้ไหมที่ข้อมูลที่เข้าไปบันทึกมันชนกัน ช่วยทีครับ ..... ขอบคุณมากครับ
คำถามมันกว้างไปหน่อย เพราะสาเหตุที่น่าจะเกิดขึ้นได้มีหลายปัจจัยมาก คงต้องดูที่การออกแบบตัวโปรแกรมว่ามีจุดบกพร่องตรงไหน
คงต้องไล่ดูเป็นส่วนๆ
1.ส่วนที่เพิ่มข้อมูลใหม่ลงในฐานข้อมูล ต้องมีระบบดักจับ ตรวจสอบข้อผิดพลาด ระหว่างการเพิ่มข้อมูลเพื่อให้ได้ข้อมูลครบถ้วน
2.ส่วนแก้ไขข้อมูลที่มีอยู่ในฐานข้อมูล  ส่วนนี้มีส่วนไหนที่ผู้ใช้งานอาจจะเข้าไปเพลอกดลบ Record ได้หรือไม่ (ถ้ามีระบบแก้ไข)
3.ส่วนของการลบข้อมูล  (ถ้ามีระบลบข้อมูลได้ โดย User)
4.ส่วนของการจัดระเบียบและดูข้อมูลด้วยวิธีต่างๆ  เช่นสอบถามข้อมูล การใช้งานคิวรี่ อื่นๆ อาจจะมีผลกระทบกับตัวฐานข้อมูล
5.ส่วนของการใช้งานหลายๆคน อาจจะเกิดจากการนำเข้าข้อมูลไม่ครบถ้วน ขาดส่วนไหนไปโดยไม่ตั้งใจ หรืออาจจะลืมบันทึกไปก็มีส่วนเหมือนกันครับ

499
สวัสดีคะ พอดีพึ่งเริ่มจะศีกษาคะ แล้วตอนนี้ึติดปัญหาว่า จะสร้างปุ่มเพิ่ม ลบ แก้ไข
  เมื่อคลิก button แล้วตรฟังก์ตัวนี้ command button wizard  ไม่ขึ้นคะ

ต้อง ตรงเมนูออกแบบ ติ๊กเลือก ใช้ตัวช่วยสร้างตัวควบคุม  ด้วยครับ
มันถึงจะขึ้น Wizard ให้

500
มันมีหลายแบบทั้ง Tahoma MS Sans Serif Arial Verdana และอื่นๆ แต่ส่วนตัวผมใช้ Arial  เพราะฟ้อนพวกนี้ มีทุกเครื่อง และใช้ได้ทั้งไทยและอังกฤษครับ เรื่องขนาด แล้วแต่การออกแบบครับ :cool: :grin:

501
ห้อง MS Access / > การเพิ่มเงื่อนไข SQL ค่ะ
« เมื่อ: 05 เม.ย. 61 , 18:10:57 »
สร้างคิ่วรี่ใหม่ ใส่ sql ตามนี้
โค๊ด: [Select]
SELECT StockMonthlyOld.ItemID, StockMonthlyOld.Name, StockMonthlyOld.Type, StockMonthlyOld.Date, StockMonthlyOld.QtyReceived, StockMonthlyOld.Task
FROM StockMonthlyOld LEFT JOIN StockMonthlyOld AS StockMonthlyOld_1 ON StockMonthlyOld.ItemID = StockMonthlyOld_1.ItemID
GROUP BY StockMonthlyOld.ItemID, StockMonthlyOld.Name, StockMonthlyOld.Type, StockMonthlyOld.Date, StockMonthlyOld.QtyReceived, StockMonthlyOld.Task
HAVING (((Count(StockMonthlyOld_1.Task))<>0));

502
ผมได้สร้างตารางการยืมสมุด ซึ่งในตาราง Table1 ประกอบด้วย NameBorrow,DateDeadline ซึ่งผมได้สร้างคิวรี่การยืมเกินกำหนด ชื่อ qryOverdue โดยนำตาราง Table1 มาแสดงในคิวรี่และได้เพิ่มฟิลด์ Overdue: [DateDeadline]-Date()
คำถาม คือ ผมต้องการจะสร้าง Report โดยมี Combo Box ซึ่งมีลิสต์ให้เลือก ระหว่าง ไม่ถึงกำหนดคืน กับ เกินกำหนดคืน จะมีวิธีการอย่างไรบ้างครับ เพื่อให้รีพอตออกมาแบบนี้ครับ ขอบคุณมากครับ

ผมว่าตรง [DateDeadline]-Date()  เปลี่ยนเปนหาว่า เกินกำหนดคืน หรือยังดีกว่านะครับ
ซึ่งเราอาจจะใช้ฟังชั่น IIF เช่น
โค๊ด: [Select]
CheckOverdue: IIf([Datedeadline]>Date(),"ไม่เกินกำหนดคืน","เกินกำหนดคืน")ที่ช่อง Criteria ของ CheckOverdue ดังนี้
โค๊ด: [Select]
[Forms]![Form1]![CheckOverdue]แล้วสร้างฟอร์ม มา 1 form ผมตั้งชื่อว่า Form1 กับ ComboBox ชื่อ CheckOverdue โดย มี List ไม่เกินกำหนดคืน กับ เกินกำหนดคืน
แล้วกด ปุ่ม เพิ่มเปิดรายงานขึ้นมา


503
ให้เช็คการวาง control พวก Combobox textbox หรืออื่นๆ ไว้ที่ ส่วนหัวของฟอร์มหรือเปล่า เพราะถ้าเป็น ฟอร์มแบบ Continuous Forms ข้อมูลต้องอยู่ในส่วนรายละเอียด ห้าม เอา Control ตัวใดไปวางไว้ที่ส่วนหัวของฟอร์ม
เพราะ สาเหตุพวกนี้อาจจะทำให้เกิด error เมื่อ กดลบเรคคอร์ดถัดไปได้

504
ผมสร้างฟอร์มกรอกข้อมูลลูกค้าโดยมีปุ่มเพิ่มข้อมูล ซึ่งในฟอร์มนี้มีซับฟอร์มลูกค้า ซึ่งผมต้องการให้ เมื่อกรอกข้อมูลเสร็จ แล้วกดปุ่มเพิ่มข้อมูล
ข้อมูลที่เพิ่งกรอกไปจะมาโชว์ในซับฟอร์มทันที จะมีวิธีไหนอย่างไรบ้างไหมครับ ขอบคุณครับ
ที่คำสั่งต่อท้ายด้วย me.ชื่อของ sub form.requery

หน้า: 1 ... 25 26 27 [28] 29 30 31 32