แสดงกระทู้

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 - 001Jetnipit

หน้า: [1] 2 3 4 5
1
docmd.runsql "Delete from BB where รหัส not in (select รหัส from AA)"
หรือ สร้าง Delete คิวรี่ จากตาราง BB ตรงฟิวด์รหัส ใส่ criteria not in (select รหัส from AA)
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

2
ไม่มีครับ ผมเช็คแล้ว เมื่อกี้ก็เช็คแล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

3
ลองตามนี้
วิธีที่1 control ตัวอื่นทั้งหมด กำหนด properties tabStop เป็น No
วิธีที่ 2 ใช้ setFocus ที่ control ที่ต้องการ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

4
น่าสนใจมากเลยค่ะอาจารย์
ขออนุญาตคุณ001jetnipitด้วยนะคะ

รบกวนอาจารย์ OddyWriter ขอไฟล์ตัวอย่างแบบ 32 bit ด้วยได้ไหมคะ
หนูจะเอาไปปลุกผีงานเก่าที่เคยถอดใจล้มเลิกไปแล้วค่ะ

แต่หนูลองเอาไฟล์ตัวอย่าง64bit ของอาจารย์ไปรันกับ 32bit มันก็ทำงานได้ปกตินะคะ
ไม่ทราบว่าจริงๆแล้วจะมีผลแตกต่างอื่นๆหรือเปล่าคะ

จริงดิ ผมส่งผิดไฟล์เหรอเนี่ย ดันส่ง 32 Bit ไปซะงั้น ถ้าจะ Run บน 64 Bit ให้แก้โค้ด Function เป็น PtrSafe Function ครับ



windows คุณเป็น 64 Bit ไม่ได้หมายความว่า Access คุณจะเป็น 64 bit หรือ 32 Bit นะครับ โปรดเข้าใจให้ถูกต้อง

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

5
ขอบคุณค่ะอาจารย์ OddyWriter
บังเอิญโจทย์ของคุณ 001jetnipit ตรงกับที่หนูเคยทำเล่นลองผิดลองถูกอยู่ระยะหนึ่ง
ตอนหลังหนูไม่ได้ใช้เทคนิคนี้แล้วเพราะเบื่อผลข้างเคียงของมันก็คือ
ถ้าเครื่องเราเปิดใช้โปรแกรมหรือโฟลเดอร์อื่นอยู่ก่อน
เจ้าฟอร์มป็อปอัพของเรามันไม่ยอมป็อปอัพซะงั้น แต่กลับไปแอบอยู่ข้างหลังเฉยเลย
เข้าใจว่าอาจเป็นเพราะ Access ถูกเราสั่งให้ Minimize หรือเปล่า

งั้นเดี๋ยวลองดู จขกท. ว่าเค้าว่าไง
เพราะวิธีการที่ผมทำไว้มันซับซ้อนนนน แต่ไม่น่าจะเกิดปัญหาอย่างที่ว่า
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

6
ขอบคุณค่ะอาจารย์ OddyWriter
บังเอิญโจทย์ของคุณ 001jetnipit ตรงกับที่หนูเคยทำเล่นลองผิดลองถูกอยู่ระยะหนึ่ง
ตอนหลังหนูไม่ได้ใช้เทคนิคนี้แล้วเพราะเบื่อผลข้างเคียงของมันก็คือ
ถ้าเครื่องเราเปิดใช้โปรแกรมหรือโฟลเดอร์อื่นอยู่ก่อน
เจ้าฟอร์มป็อปอัพของเรามันไม่ยอมป็อปอัพซะงั้น แต่กลับไปแอบอยู่ข้างหลังเฉยเลย
เข้าใจว่าอาจเป็นเพราะ Access ถูกเราสั่งให้ Minimize หรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

7
ขออนุญาตตอบคุณ 001jetnipit นะคะ
เห็นว่าคุณได้ทำฟอร์มป็อปอัพไว้แล้ว ลองทำอย่างนี้ดูนะคะ

ที่อีเวนต์ เมื่อเปิด ของฟอร์มป็อปอัพ ใส่คำสั่งนี้ลงไป (ต้องเป็นฟอร์มป็อปอัพนะคะ)
 DoCmd.RunCommand acCmdAppMinimize

และที่อีเวนต์ เมื่อปิด ของฟอร์มป็อปอัพ ใส่คำสังนี้ลงไปเพื่อคืนค่าเดิมค่ะ
 DoCmd.RunCommand acCmdAppRestore
หรือ
 DoCmd.RunCommand acCmdAppMaximize

ลองประยุกต์ใช้ดูนะคะ

วิธีการง่ายกว่าผมมาก (จะคิดเยอะทำไมเนี่ย)
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

8
ขออนุญาตตอบคุณ 001jetnipit นะคะ
เห็นว่าคุณได้ทำฟอร์มป็อปอัพไว้แล้ว ลองทำอย่างนี้ดูนะคะ

ที่อีเวนต์ เมื่อเปิด ของฟอร์มป็อปอัพ ใส่คำสั่งนี้ลงไป (ต้องเป็นฟอร์มป็อปอัพนะคะ)
 DoCmd.RunCommand acCmdAppMinimize

และที่อีเวนต์ เมื่อปิด ของฟอร์มป็อปอัพ ใส่คำสังนี้ลงไปเพื่อคืนค่าเดิมค่ะ
 DoCmd.RunCommand acCmdAppRestore
หรือ
 DoCmd.RunCommand acCmdAppMaximize

ลองประยุกต์ใช้ดูนะคะ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

9
ใช้ Access 64Bit หรือ 32ฺBit ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

10
ลองเช็ค Event ของฟอร์มเมื่อเปิดได้ไปกำหนดเป็น Maximize ของฟอร์มหรือเปล่าครับ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

11
1.สร้างShortcutโปรแกรมaccess
2.คล๊กขวาที่Shortcut เลือก Properties
3.Run เลือก Minimized

โปรแกรมaccessของเรา
ตั้งค่าโปรแกรม
Option > Current Database

Display Form เลือกฟอร์มที่เราต้องการให้แสดง
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

12
การ Linked table ไม่สามารถแก้ไขหรือเพิ่มอะไรได้ ต้องไปแก้ที่ไฟล์excelข้างนอกเท่านั้นครับ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

13
ว่าจะไม่ยุ่งกับกระทู้นี้ เพราะเห็นคุณ PNR ตอบอยู่
แต่อดไม่ได้จริง เพราะรู้สึกว่ากำลังจะทำให้ได้ฐานข้อมูลที่สร้างปัญหาได้ในอนาคต

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

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

สำหรับการแก้ปัญหาของคุณนั้น ทำได้ง่ายมากคือ
1. ลบฟิลด์ "ชนิด" ในตารางหลักออกไป
2. ถ้าต้องการรู้ว่าคนไหนมีชนิดอะไร ให้สร้างคิวรี ที่เชื่อมข้อมูลรหัสของทั้ง 2 ตาราง แล้วดึงฟิลด์ รหัส,ชื่อ,ชนิด มาแสดงผล ก็จะได้อย่างที่คุณต้องการแล้วครับ

ทั้งนี้ยกเว้นคุณมีจุดประสงค์อื่น เช่นต้องการบันทึกการเปลี่ยนแปลงชนิด แบบนี้ก็ต้องสร้างตารางบันทึกการเปลี่ยนแปลงชนิด ซึ่งก็ต้องมีฟิลด์วัน-เวลา เพื่อเก็บข้อมูลด้วย
ผมได้รีโมทไปทำแบบนั้นให้เขาแล้วครับอาจารย์
โดยใช้คิวรี่ในการเชื่อมข้อมูลมาแสดงครับ
1.ตอนแรกไม่ค่อยเข้าใจโจทย์เมื่อได้เห็นการออกแบบก็ทำให้แล้วเป็น ถ้าแสดงข้อมูลธรรมดา
โค๊ด: [Select]
SELECT [TBLข้อมูลหลัก].[รหัส], [TBLข้อมูลหลัก].[ชื่อ], [TBLชนิด].[ชนิด]
FROM TBLชนิด INNER JOIN TBLข้อมูลหลัก ON [TBLชนิด].[รหัส] = [TBLข้อมูลหลัก].[รหัส];


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

14
ว่าจะไม่ยุ่งกับกระทู้นี้ เพราะเห็นคุณ PNR ตอบอยู่
แต่อดไม่ได้จริง เพราะรู้สึกว่ากำลังจะทำให้ได้ฐานข้อมูลที่สร้างปัญหาได้ในอนาคต

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

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

สำหรับการแก้ปัญหาของคุณนั้น ทำได้ง่ายมากคือ
1. ลบฟิลด์ "ชนิด" ในตารางหลักออกไป
2. ถ้าต้องการรู้ว่าคนไหนมีชนิดอะไร ให้สร้างคิวรี ที่เชื่อมข้อมูลรหัสของทั้ง 2 ตาราง แล้วดึงฟิลด์ รหัส,ชื่อ,ชนิด มาแสดงผล ก็จะได้อย่างที่คุณต้องการแล้วครับ

ทั้งนี้ยกเว้นคุณมีจุดประสงค์อื่น เช่นต้องการบันทึกการเปลี่ยนแปลงชนิด แบบนี้ก็ต้องสร้างตารางบันทึกการเปลี่ยนแปลงชนิด ซึ่งก็ต้องมีฟิลด์วัน-เวลา เพื่อเก็บข้อมูลด้วย
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

15
งั้นของผมควรใช้วิธีแรกใช่ไหมครับ

แล้วแต่การใช้งานครับ ลองสร้าง คิวรี่ใหม่แล้วเอา SQL นี้ไปวางแล้วรันดูครับ

โค๊ด: [Select]
SELECT DLookUp("ชนิด","TBLชนิด","รหัส = '" & [รหัส] & "'") AS ชนิด, [TBLข้อมูลหลัก].*
FROM TBLข้อมูลหลัก;
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

16
จากตัวอย่างนั้น มี 2 ตาราง
การที่จะแสดงข้อมูลได้นั้นสามารถทำได้ 2 แบบ คือ
1. ใช้คิวรี่ในการแสดงผล (แบบนี้ใช้การ Dlookup ก็ได้ครับ) ถ้าอยากได้แบบใช้คิวรี่แสดงผล เดี่ยวทำให้ดู

2.คือให้อัพเดทข้อมูล ชนิด  ในตารางข้อมูลหลัก
โค๊ด sql ที่ให้ไปนั้นจะต้องสร้าง query ใหม่ขึ้นมาใช้งาน จะใช้สำหรับอัพเดทข้อมูลให้ตารางข้อมูลหลักก่อนการแสดงผลครับ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

หน้า: [1] 2 3 4 5