SQL กับ Access ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 2,251   4
URL.หัวข้อ / URL
SQL กับ Access ครับ

SQL กับ Access ครับ


คือตอนนี้ที่ทำงานผม ต้องทำรายงานทุกต้นเดือน แล้วผมมาทำงานใหม่แทนคนเก่า
วิธีทำของคนเก่านะครับ

เขามีไฟล์คิวรี sql อยู่ ให้เปิดออกมาแล้วใส่วันที่เริ่มต้น และวันที่สุดท้าย
เซฟแล้วนำไปรัน แล้วลากๆๆๆข้อมูลทั้งหมดที่แสดง เอาไปวางใน excel


คืออยากถามว่ามันมีวิธีไหมครับใน access ที่ให้กดปุ่มเดียวออกเป็นไฟล์ excel เลยครับ แต่ดูเหมือนจะยากตรงใส่วันที่ มันต้องเปิดออกมาใส่วันที่ใหม่ทุกครั้งที่ต้องการรายงานครับ



4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R15710
ก็ไม่ยากนะ ใน Access มีอยู่แล้วไม่ต้องทำเลย ลองหาดูที่ Ribbon
ส่วนที่ที่ส่งออกมา ตั้งได้จากที่ตั้งค่า ไฟล์ที่ออกมาจะออกมา เป็นชื่อคิวรี
ของฟอร์ม หรือรายงานนั้น ฟิลด์ที่ออกมา ก็ตามคิวรี่เหมือนกัน
2 @R15711
ตัวอย่างโคดส่วนหัวครับ


--เปลี่ยนแปลงข้อมูลที่นี่---เริ่ม
set @datefrom = '201204010000'
set @dateto = '201303312359'
--เปลี่ยนแปลงข้อมูลที่นี่--จบ

---query ดึง DM เบาหวาน ย้อนหลัง 1 ปี
---ตารางปีปัจจุบัน
select --left(min(ocmorgdtm),8) AS DATE ,
PbsChtnum AS HN,PbsPatnam+' '+Pbssurnam as Name
,dbo.CheckAgeBirth(Pbsbirdte,convert(char(8),Getdate(),112))AS age,Pbssextyp Sex,Oicicdcod
from pbsinf WITH (NOLOCK),oicinf WITH (NOLOCK),ocminf WITH (NOLOCK)
where (
oicicdcod between 'E10.00' and 'E13.9'
or oicicdcod = 'E10'
or oicicdcod = 'E11'                     
or oicicdcod = 'E13'
or oicicdcod = 'E12'
)


ตรงวันที่ตรงนี้ต้องใส่ทุกครั้งก่อนคิวรี่
--เปลี่ยนแปลงข้อมูลที่นี่---เริ่ม
set @datefrom = '201204010000'
set @dateto = '201303312359'
--เปลี่ยนแปลงข้อมูลที่นี่--จบ

มีทางทำได้ไหมครับ ถ้าเป็นปุ่มบน access เมื่อกด output to excel จะมีวันที่ขึ้นมาถามเพื่อเขียนเข้าไปแทนที่ตรงวันที่นั้นครับ

3 @R15743
สร้างคิวริ่เปล่าๆ มาอันหนึ่ง ไม่ต้องตั้งค่าพารามิเตอร์ใดๆ แล้วเปลี่ยมุมมองเป็น SQL
ลองเอา statement นี้ไปวางแล้วลงรันดูครับ
ผมจินตนาการเอานะครับ แต่ไม่มีที่ให้ลอง

select left(min(ocmorgdtm),8) AS [DATE],
PbsChtnum AS HN,PbsPatnam+' '+Pbssurnam as Name
,dbo.CheckAgeBirth(Pbsbirdte,convert(char(8),Getdate(),112))AS age,Pbssextyp Sex,Oicicdcod
from pbsinf WITH (NOLOCK),oicinf WITH (NOLOCK),ocminf WITH (NOLOCK)
where (
oicicdcod between 'E10.00' and 'E13.9'
or oicicdcod = 'E10'
or oicicdcod = 'E11'
or oicicdcod = 'E13'
or oicicdcod = 'E12' ,
dateserial(left(min(ocmorgdtm),4),mid(min(ocmorgdtm),5,2),mid(min(ocmorgdtm),7,2)) between #[วันที่เริ่มต้น YYYY-MM-DD]# and dateadd("yyyy",1,[วันที่เริ่มต้น YYYY-MM-DD]) - 1
)
4 @R15751
ขอบคุณมากครับ ผมเอาไปใส่แบบเต็มๆ ตามนี้มัน error

! Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

แบบนี้ครับ


declare @datefrom char(12),@dateto char(12)

select left(min(ocmorgdtm),8) AS [DATE],

PbsChtnum AS HN,PbsPatnam+' '+Pbssurnam as Name

,dbo.CheckAgeBirth(Pbsbirdte,convert(char(8),Getdate(),112))AS age,Pbssextyp Sex,Oicicdcod

from pbsinf WITH (NOLOCK),oicinf WITH (NOLOCK),ocminf WITH (NOLOCK)

where (

oicicdcod between 'E10.00' and 'E13.9'

or oicicdcod = 'E10'

or oicicdcod = 'E11'                     

or oicicdcod = 'E13'

or oicicdcod = 'E12' ,

dateserial(left(min(ocmorgdtm),4),mid(min(ocmorgdtm),5,2),mid(min(ocmorgdtm),7,2)) between #[วันที่เริ่มต้น YYYY-MM-DD]# and dateadd("yyyy",1,[วันที่เริ่มต้น YYYY-MM-DD]) - 1

)

and oicocmnum=ocmnum and Pbschtnum=Ocmchtnum
and ocmacpdtm between @datefrom and @dateto
--and oicdgndte between '20120218' and '20130131'
--and oicicdpri ='1'

Group by PbsChtnum ,PbsPatnam,Pbssurnam ,Pbsbirdte,Pbssextyp ,Oicicdcod

Union
--ตาราง Backup
Select --left(min(ocmorgdtm),8) AS DATE ,
PbsChtnum AS HN,PbsPatnam+' '+Pbssurnam as Name
,dbo.CheckAgeBirth(Pbsbirdte,convert(char(8),Getdate(),112))AS age,Pbssextyp Sex,Oicicdcod
from pbsinf WITH (NOLOCK),oicinf WITH (NOLOCK),ocmhst WITH (NOLOCK)
where (
oicicdcod between 'E10.00' and 'E13.9'
or oicicdcod = 'E10'
or oicicdcod = 'E11'                     
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2406s