:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่างเพิ่มเติม)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#26

by snasui » Tue Jun 05, 2018 11:09 pm

:D ใน Access มีข้อความที่มีการวรรคไม่แน่นอน เมื่อตัดมาแล้วจะเป็นตามภาพ เมื่อนำไปแสดงใน Excel ก็จะได้ผลเช่นเดียวกัน ต้นทางเป็นเช่นไร ปลายทางก็เป็นเช่นนั้นครับ
Attachments
Inconsistancy
Inconsistancy
Inconsistancy.png (56.43 KiB) Viewed 25 times

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#25

by chalidas » Tue Jun 05, 2018 10:36 pm

ส่งไฟล์ Database ค่ะ
DB.rar
Database
(336.31 KiB) Downloaded 3 times
ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#24

by snasui » Tue Jun 05, 2018 8:03 pm

chalidas wrote: Tue Jun 05, 2018 9:05 am ได้แล้วค่ะอาจารย์ ขอบคุณอาจารย์มากๆค่ะ
ขอถามตรง mid$ มันหมายถึงอะไรหรอค่ะอาจารย์ มันต่างกับ mid เฉยๆยังไงค่ะอาจารย์

ขอบคุณค่ะ
:D ความหมายหลักของการใส่ $ เข้าไปหลัง Mid เป็นการกำหนด Data Type ให้เป็น String ไม่ต้องให้โปรแกรมตัดสินใจเอง นอกจากนี้ยังจะมีความเร็วกว่าการใช้ Mid ธรรมดาครับ
chalidas wrote: Tue Jun 05, 2018 1:54 pm สอบถามเพิ่มเติมค่ะอาจารย์ ตอนที่ไปget DATA ใน Excel ตอนเลือก 5_Parent_Personal_DAD จาก access พอเปิดดูข้อมูลใน Excel มันแยกชื่อนามสกุลเป็นบางคน แต่ตอนดูในaccessแยกชื่อนามสกุลให้ทุกคนเลย ต้องแก้ยังไงคะ
ขอบคุณค่ะ
:D โดยหลักการแล้วไม่ควรจะแตกต่างกัน หากสะดวกลอง Update ไฟล์มาใหม่จะได้ช่วยทดสอบได้ครับ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#23

by chalidas » Tue Jun 05, 2018 1:54 pm

สอบถามเพิ่มเติมค่ะอาจารย์ ตอนที่ไปget DATA ใน Excel ตอนเลือก 5_Parent_Personal_DAD จาก access พอเปิดดูข้อมูลใน Excel มันแยกชื่อนามสกุลเป็นบางคน แต่ตอนดูในaccessแยกชื่อนามสกุลให้ทุกคนเลย ต้องแก้ยังไงคะ


ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#22

by chalidas » Tue Jun 05, 2018 9:05 am

ได้แล้วค่ะอาจารย์ ขอบคุณอาจารย์มากๆค่ะ
ขอถามตรง mid$ มันหมายถึงอะไรหรอค่ะอาจารย์ มันต่างกับ mid เฉยๆยังไงค่ะอาจารย์

ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#21

by snasui » Tue Jun 05, 2018 5:33 am

:D ตัวอย่าง Query ตามด้านล่างครับ

Code: Select all

SELECT [1_Personal1].PID_SELECT, [1_Personal1].PID_SELECT_FNAME, [1_Personal1].PID_SELECT_MNAME, [1_Personal1].PID_SELECT_LNAME, [1_Personal1].PID_SELECT_SEX, [1_Personal1].PID_SELECT_BIRTHDATE, [1_Personal1].PID_SELECT_NATION, [1_Personal1].PID_SELECT_RELIGION, [1_Personal1].WORK_START_DATE, [1_Personal1].POSITION_REGISTER_ID, '4' AS RELATION, FamilyReport.[Identity Number for Mother] AS PID, KMSTPNEL.[Mother Name] AS PID_FNAME, Mid$(Replace([PID_FNAME],[PID_LNAME],""),InStr([PID_FNAME]," ")+1) AS PID_MNAME, Mid$([PID_FNAME],InStrRev([PID_FNAME]," ")+1) AS PID_LNAME, '2' AS PID_SEX, ' ' AS PID_BIRTHDATE, ' ' AS PID_NATION, ' ' AS PID_RELIGION, ' ' AS CHILD_INCOMPETENT, ' ' AS CHILD_REGULARITY
FROM (KMSTPNEL INNER JOIN 1_Personal1 ON KMSTPNEL.[Personnel ID] = [1_Personal1].[Personnel ID]) LEFT JOIN FamilyReport ON KMSTPNEL.[Personnel ID] = FamilyReport.PersNo
WHERE (((KMSTPNEL.[Mother Name])<>'') AND ((FamilyReport.Membr)='12'));

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#20

by chalidas » Tue Jun 05, 2018 1:08 am

ขอบคุณค่ะอาจารย์แก้ได้แล้วค่ะ ขอเปลี่ยนคำถามเป็น ต้องการจะตัดชื่อ กับนามสกุลในคิวรี่ที่ชื่อ6_Personal_MOM นามสกุลให้เอาไปใส่ช่อง Lnameในคำสั่งคิวรี่ลองวางคำสั่งMid แล้วมันฟ้องเออเร่อว่า Syntax ไม่ถูกต้องค่ะ

SELECT [1_Personal1].PID_SELECT, [1_Personal1].PID_SELECT_FNAME, [1_Personal1].PID_SELECT_MNAME, [1_Personal1].PID_SELECT_LNAME, [1_Personal1].PID_SELECT_SEX, [1_Personal1].PID_SELECT_BIRTHDATE, [1_Personal1].PID_SELECT_NATION, [1_Personal1].PID_SELECT_RELIGION, [1_Personal1].WORK_START_DATE, [1_Personal1].POSITION_REGISTER_ID, '4' AS RELATION, FamilyReport.[Identity Number for Mother] AS PID, KMSTPNEL.[Mother Name] AS PID_FNAME, ' ' AS PID_MNAME, ' ' AS PID_LNAME, '2' AS PID_SEX, ' ' AS PID_BIRTHDATE, ' ' AS PID_NATION, ' ' AS PID_RELIGION, ' ' AS CHILD_INCOMPETENT, ' ' AS CHILD_REGULARITY
FROM (KMSTPNEL INNER JOIN 1_Personal1 ON KMSTPNEL.[Personnel ID]=[1_Personal1].[Personnel ID]) LEFT JOIN FamilyReport ON (Mid([KMSTPNEL].[Mother Name],InStr([Mother Name]," ")+1)=(FamilyReport.[First name])+' '+(FamilyReport.[Last name])) AND (KMSTPNEL.[Personnel ID]=FamilyReport.PersNo)
WHERE (((KMSTPNEL.[Mother Name])<>'')) And FamilyReport.Membr='12';


ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#19

by snasui » Mon Jun 04, 2018 7:48 pm

:D ลอง Update ไฟล์มาใหม่ให้มี Query 9_Personal_Termination จะได้ช่วยดูให้ได้ครับ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#18

by chalidas » Mon Jun 04, 2018 2:42 pm

SELECT [9_Personal_Termination].PID_SELECT, [9_Personal_Termination].PID_SELECT_FNAME, [9_Personal_Termination].PID_SELECT_MNAME, [9_Personal_Termination].PID_SELECT_LNAME, FamilyReport.บัตรประชาชน AS PID, KMSCHD01.[Family First Name] AS PID_FNAME, ' ' AS PID_MNAME, KMSCHD01.[Family Last Name] AS PID_LNAME, [7_Child_Personal].RELATION AS RELATION, [9_Personal_Termination].POSITION_REGISTER_ID, '16' AS RELEASE_ID, 'บันทึกข้อมูลบุตรไม่ถูกต้อง' AS REMARK
FROM (KMSCHD01 INNER JOIN 9_Personal_Termination,7_Child_Personal
ON KMSCHD01.[Personnel ID] = [9_Personal_Termination].[Personnel ID]) LEFT JOIN FamilyReport
ON (KMSCHD01.[Family First Name] = FamilyReport.[First name]) AND (KMSCHD01.[Personnel ID] = FamilyReport.PersNo)
ON [9_Personal_Termination].[PID_SELECT] = [7_Child_Personal].[PID_SELECT] AND (KMSCHD01.[Personnel ID] = FamilyReport.PersNo))
WHERE (((KMSCHD01.[Family First Name])<>' ') AND ((FamilyReport.Membr)='2'));

สอบถามเพิ่มเติมค่ะอาจารย์ จะinner join 3 ตารางแต่ Syntax มันผิดตรงไหนค่ะอาจารย์

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#17

by snasui » Sun Jun 03, 2018 7:41 am

:D ตัวอย่างการตัดมาเฉพาะชื่อและนามสกุลโดยไม่เอาคำนำหน้านาม

หากมีวรรคคั่นกลางระหว่างคำนำหน้านามกับชื่อสามารถใช้ Instr เข้ามาช่วยได้ครับ ยกตัวอย่างตามสูตรด้านล่าง

์Name: Mid([FullName],InStr([FullName]," ")+1)

ลองนำ FullName ไปแทน Statement ที่ Reuturn ค่าที่ต้องการจะตัดครับ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#16

by chalidas » Sat Jun 02, 2018 11:44 pm

อาจารย์คะ อยากตัดคำนำหน้าชื่อออก เช่น นาย สมหวัง ดีมาก ต้องการตัดให้เหลือแค่ สมหวัง ดีมากต้องใช้คำสั่งอะไรครอบค่ะ
SELECT [9_Personal_Termination].PID_SELECT, [9_Personal_Termination].PID_SELECT_FNAME, [9_Personal_Termination].PID_SELECT_MNAME, [9_Personal_Termination].PID_SELECT_LNAME, FamilyReport.[Identity Number for Father] AS PID, FamilyReport.[First name] AS PID_FNAME, ' ' AS PID_MNAME, FamilyReport.[Last name] AS PID_LNAME, '4' AS RELATION, [9_Personal_Termination].POSITION_REGISTER_ID, '11' AS RELEASE_ID, 'บันทึกข้อมูลบิดาไม่ถูกต้อง' AS REMARK, MASTER.[Terminate Date]
FROM (KMSTPNEL INNER JOIN 9_Personal_Termination ON KMSTPNEL.[Personnel ID]=[9_Personal_Termination].[Personnel ID]) LEFT JOIN FamilyReport ON (KMSTPNEL.[Personnel ID]=FamilyReport.PersNo) AND (KMSTPNEL.[Father Name]=(FamilyReport.คำนำหน้าชื่อ+' '+(FamilyReport.[First name])+' '+(FamilyReport.[Last name])))
WHERE (((KMSTPNEL.[Father Name])<>' ')) And FamilyReport.Membr='11';


ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#15

by snasui » Fri Jun 01, 2018 6:35 pm

:D ภาพเล็กมากไม่สามารถอ่านได้ครับ

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

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#14

by chalidas » Fri Jun 01, 2018 11:18 am

อาจารย์ค่ะ ลองปรับคิวรี่ใหม่แล้วขึ้นดังไฟล์แนบค่ะ
Attachments
6-1-2018 11-21-14 AM.png
6-1-2018 11-21-14 AM.png (134.52 KiB) Viewed 76 times

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#13

by snasui » Thu May 31, 2018 6:37 pm

:D ถ้าได้แปลงคอลัมน์อื่นที่ Error ไปเป็นข้อความที่ไม่ Error แล้วยัง Query ไม่ได้อีกผมคงช่วยได้เท่านี้ครับ เท่าที่ตรวจสอบดูมีปัญหาเพียงรายการเดียวที่ Access ไม่สามารถแปลงวันที่แบบพ.ศ.มาเป็นค.ศ.ได้ หากเร่งด่วนใช้วิธีการแก้ปัญหาเฉพาะหน้าไปก่อนด้วยการ Query โดยไม่รวม Id นั้นครับ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#12

by chalidas » Thu May 31, 2018 4:09 pm

อาจารย์คะ ปรับให้เป็นแบบนี้ค่ะ
IIf(IsDate(Format(Left$([Date of Birth],4) & Right$([Date of Birth],4)-543,"00\/00\/0000")),IIf((DateDiff('d',Format(Left$([Date of Birth],4) & Right$([Date of Birth],4)-543,"00\/00\/0000"),Date())/365)>20,'N','Y'),'Notfound')

จากนั้นลอง Union All ก็ขึ้น Data type mismatch in criteria expression

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#11

by snasui » Wed May 30, 2018 7:50 pm

:D ได้ลองปรับเป็นแบบอื่นแล้วหรือไม่ ด้านบนผมยกตัวอย่างโดยให้มันแสดงเป็นค่าว่าง ต้องการให้แสดงค่าใดก็ปรับเป็นค่านั้นครับ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#10

by chalidas » Wed May 30, 2018 6:56 pm

อาจารย์คะ ลองรันดูแล้วตอนunion all มันฟ้องว่า data type mismatch in criteria expression


ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#9

by snasui » Mon May 28, 2018 6:57 pm

:D ลองประยุกต์ใช้ฟังก์ชั่น IsDate เข้ามาช่วยดูครับ

ตัวอย่าง

CHILD_REGULARITY: IIf(IsDate(Format(Left$([Date of Birth],4) & Right$([Date of Birth],4)-543,"00\/00\/0000")),IIf((DateDiff('d',Format(Left$([Date of Birth],4) & Right$([Date of Birth],4)-543,"00\/00\/0000"),Date())/365)>20,'N','Y'),"")

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#8

by chalidas » Mon May 28, 2018 4:31 pm

อาจารย์ค่ะ เช็คแล้วพบว่าที่ฟิลด์CHILD_REGULARITY มีของคนนึงขึ้นว่า #Error ถ้าเราจะเช็คว่าถ้าเป็น#Error ให้เก็บค่าเป็น Text แทนต้องทำอย่างไรค่ะ


ขอบคุณค่ะ

Re: ใช้คำสั่ง Union All แล้ว Access ฟ้อง invalid in use is null

#7

by snasui » Mon May 28, 2018 9:24 am

:D ใช้ NZ ครอบ Expression ของการคำนวณอายุ หากเป็น Null สามารถกำหนดให้แสดงเป็นอย่างอื่นได้ครับ

ตัวอย่างการใช้งานดูที่นี่ครับ https://www.techonthenet.com/access/fun ... ced/nz.php

Top