แสดงกระทู้

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] 2 3 4 ... 7
1
 :shout: ว้า...ว เยี่ยมเลยค่ะอาจารย์ ปิดจ็อบได้ตามที่ต้องการแล้วค่ะ
หนูหลงทาง มัวแต่ไปเสียเวลาค้นหาวิธีการใช้คำสั่ง insert into เสียตั้งหลายวันก็ไม่สำเร็จ
ขอบพระคุณอย่างยิ่งค่ะอาจารย์ chai

2
หนูมีตารางอยู่2ตาราง สมมติว่าชื่อ [ตารางA] กับ [ตารางB] นะคะ

ความต้องการของหนูก็คือ
หนูต้องการจะส่งข้อมูลเฉพาะจาก ฟิลด์A ซึ่งอยู่ใน [ตารางA] เข้าไปใส่ใน ฟิลด์B ของ [ตารางB] ค่ะ
แม้ใน ฟิลด์B จะมีข้อมูลเดิมอยู่ก่อนแล้วหรือไม่ก็ตาม ก็ให้ทับแทนที่ด้วยข้อมูลใหม่ไปเลย
ฟิลด์อื่นๆที่เหลือก็ปล่อยไว้คงเดิม

ซึ่งทั้ง [ตารางA] และ [ตารางB] มีเพียงเร็คคอร์ดเดียวเหมือนกันค่ะ

หนูจะเอาคำสั่งนี้ไปผูกไว้กับปุ่มบนฟอร์ม ซึ่งสร้างเตรียมไว้แล้วค่ะ

3
ขออนุญาตเพิ่มเติมแนวคิดการแก้ปัญหา 32bit-64bit ของหนูดังนี้นะคะ

หนูจะทำเป็นสองไฟล์แยกกันใช้งานไปเลยค่ะเพราะมันใช้สลับกันไม่ได้ คือ
-ไฟล์ตัวที่เป็น32bit เดิมก็ใช้กับ32bit ต่อไปตามเดิม
-ส่วนไฟล์ที่จะใช้กับ 64bit นั้นก็เอามาแก้ไขเฉพาะโค๊ดที่มีปัญหา
โดยลองรันโปรแกรมดู โค๊ดไหนที่มีปัญหากับ 64bit มันก็จะขึ้น Error เป็นสีแดงเลย
เราก็แก้ไขเฉพาะตรงบรรทัดที่มีข้อความ "Declre Function" โดยเพิ่มแทรกคำว่า "PtrSafe" ลงไประหว่างกลาง
ก็จะได้เป็นดังนี้ "Declare PtrSafe Funtion"
ไล่ทำทุกบรรทัดที่มีข้อความดังกล่าว และ ทุกโค๊ดต่างๆที่มันขึ้น Error สีแดง ส่วนโค๊ดไหนที่ไม่ขึ้น Error ก็ไม่ต้องแก้ไขค่ะ

4
 :shout: เย้..โค๊ดใหม่นี้ตอบโจทย์ได้ครบถ้วนเลยค่ะอาจารย์ UnKnown
ขอบพระคุณอย่างยิ่งนะคะ

5
จากการทดสอบโค๊ดของอาจารย์ UnKnown แล้วพบว่า
หากใส่ภาษาไทย หรือตัวเลข เพียงอย่างใดอย่างหนึ่ง โอเค มันปล่อยให้ผ่านได้ค่ะ
ส่วนภาษาอังกฤษนั้นมันจับได้ไม่ยอมให้ผ่าน อันนี้โอเคเลย

แต่หากใส่เป้นภาษาไทยร่วมกับตัวเลข อันนี้มันก็จะไม่ยอมให้ผ่านด้วยค่ะ เช่น

บ้านเลขที่ 25/3 ตำบลตัวอย่าง
หรือ
บ้านเลขที่ ๒๕/๓ ตำบลตัวอย่าง

ไม่ว่าจะเป็นเลขไทยหรือเลขอังกฤษก็ให้ผลแแบบเดียวกันคือไม่ยอมให้ผ่านค่ะ
พยายามลองแกะดัดแปลงแก้ไขโค๊ดแล้ว แต่ยังไม่สำเร็จเลยค่ะ
ขอรบกวนท่านด้วยนะคะ

6
ว้า..ว เยี่ยมเลยค่ะอาจารย์ UN
โค๊ดสั้นเข้าใจง่ายสามารถดัดแปลงเพิ่มเติมได้ง่ายดีค่ะ
แต่ติดตรงที่ว่า เวลาใส่ตัวเลขภาษาไทย มันก็ไม่ยอมให้ผ่านด้วย แต่ก็โอเคแล้ว ไม่ซีเรียสเรื่องตัวเลขค่ะอาจารย์
เพราะช่องข้อความที่ต้องการให้ใส่นั้น ก็ไม่มีข้อมูลตัวเลขอยู่แล้ว
แต่สมมติหากสามารถอนุญาตให้ใส่ตัวเลขไทยได้ด้วย ก็จะสามารถนำไปประยุกต์ใช้กับข้อมูลที่อยู่ของลูกค้าได้้ด้วยค่ะ

7
 :shout: เย้...ทำได้ตามที่ต้องการแล้ว
ขอบพระคุณมากเลยค่ะอาจารย์ ขออภัยที่เข้ามารายงานผลล่าช้าหน่อยนะคะ

8
หนูอยากได้เป็นคำสั่งโค๊ดนะคะ ไม่อยากได้แบบกำหนด input mask ค่ะ
เพราะต้องการจะใส่ข้อความเตือน และ คำสั่งอื่นๆต่อไปอีกค่ะ

ประมาณว่า

หากผู้ใช้เผลอคีย์ข้อความที่ไม่ไช่ภาษาไทยเข้าไป ก็จะให้มีข้อความเตือนขึ้นมา และ อื่นๆ

ขอบคุณค่ะอาจารย์

9
ตอนนี้สามารถทำได้แล้วค่ะ
โดยเปลี่ยนใช้คำสั่ง
  DoCmd.Close acForm, ("Frm_A")
  DoCmd.Close acForm, ("Frm_B")
  DoCmd.Close acForm, ("Frm_C")
ใช้ได้แล้วค่ะ

10
ที่ฟอร์มหลัก หนูต้องการทำปุ่ม เพื่อจะสั่งให้ปิดฟอร์มอื่นๆ3ฟอร์มพร้อมกัน เช่น
 Form_A
 Form_B
 Form_C

เบื้องต้นหนูลองเขียนคำสั่งดังนี้ แต่มันไม่ได้ค่ะ

DoCmd.Close
  stDocName = " Frm_A"
  stDocName = " Frm_B"
  stDocName = " Frm_C"

มันขึ้นเตือนว่าฟอร์มไม่ได้เปิดอยู่
ไม่ทราบว่าต้องเขียนคำสั่งอย่างไรคะ ขอรบกวนอาจารย์ด้วยค่ะ

11
ใช้ได้เรียบร้อยแล้ว
ขอบคุณมากเลยค่ะอาจารย์

12
ปัจจุบันใช้คำสั่งนี้อยู่ค่ะ

Private Sub Command1_Click()
    DoCmd.OpenReport "Sample", acViewPreview, "", "", acNormal
End Sub

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

ขอคำแนะนำด้วยนะคะ

13
 :shout: เย้..ได้ผลตรงตามที่ต้องการเลยค่ะ
ขอบคุณนะคะอาจารย์ UnKnown

14
ขออนุญาตสอบถามนะคะ

กรณีหากในคิวรี่ของเรา มีช่องที่เป็นค่าว่างหรือไม่มีข้อมูลใดอยู่ สมมติชื่อฟิลด์ Exp5
เราสามารถให้มันเติมข้อความ "ไม่พบข้อมูล" ลงในช่อง Exp5 แทนค่าว่างได้ไหมคะ

ความต้องการของหนูก็คือ ไม่อยากให้มันแสดงเป็นช่องว่างเปล่าค่ะ

15
เยี่ยมเลยค่ะ ขอบคุณมากค่ะอาจารย์

16
ขอบคุณค่ะอาจารย์
ใช้ได้ตามที่ต้องการแล้วค่ะ

17
ขอบคุณมากค่ะอาจารย์
การใช้ Append Query ยังไม่สำเร็จค่ะอาจารย์ ไม่ทราบจะเขียนประโยคคำสั่งอย่างไร

สำหรับการกรองเอาเฉพาะข้อมูลเดือนก่อนหน้าเดือนปัจจุบัน
Year([ชื่อฟิลด์วันที่])* 12 + DatePart("m", [ชื่อฟิลด์วันที่]) = Year(Date())* 12 + DatePart("m", Date()) - 1
อันนี้ทำได้เรียบร้อยตามต้องการ

18
หนูได้สร้างคิวรี่A โดยกรองข้อมูลจากตารางA เอาไว้้เรียบร้อยแล้ว
และหนูก็ได้สร้างตารางB เอาไว้อีกตารางหนึ่งซึ่งมีโครงสร้างตรงกับคิวรี่A ทุกประการ

ความต้องการของหนูก็คือ
ต้องการคำสั่งที่จะโยนข้อมูลจากคิวรี่A เข้าสู่ตารางB เฉพาะเมื่อต้องการค่ะ
โดยที่หน้าฟอร์มจะมีปุ่มชื่อ "โยนข้อมูล" เพื่อเตรียมจะใส่คำสั่งดังกล่าวค่ะ

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

ขอรบกวนอาจารย์ทุกท่านด้วยนะคะ
ขอบคุณค่ะ

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