กระทู้เก่าบอร์ด อ.Yeadram
2,251 4
URL.หัวข้อ /
URL
SQL กับ Access ครับ
SQL กับ Access ครับ
คือตอนนี้ที่ทำงานผม ต้องทำรายงานทุกต้นเดือน แล้วผมมาทำงานใหม่แทนคนเก่า
วิธีทำของคนเก่านะครับ
เขามีไฟล์คิวรี sql อยู่ ให้เปิดออกมาแล้วใส่วันที่เริ่มต้น และวันที่สุดท้าย
เซฟแล้วนำไปรัน แล้วลากๆๆๆข้อมูลทั้งหมดที่แสดง เอาไปวางใน excel
คืออยากถามว่ามันมีวิธีไหมครับใน access ที่ให้กดปุ่มเดียวออกเป็นไฟล์ excel เลยครับ แต่ดูเหมือนจะยากตรงใส่วันที่ มันต้องเปิดออกมาใส่วันที่ใหม่ทุกครั้งที่ต้องการรายงานครับ
คือตอนนี้ที่ทำงานผม ต้องทำรายงานทุกต้นเดือน แล้วผมมาทำงานใหม่แทนคนเก่า
วิธีทำของคนเก่านะครับ
เขามีไฟล์คิวรี sql อยู่ ให้เปิดออกมาแล้วใส่วันที่เริ่มต้น และวันที่สุดท้าย
เซฟแล้วนำไปรัน แล้วลากๆๆๆข้อมูลทั้งหมดที่แสดง เอาไปวางใน excel
คืออยากถามว่ามันมีวิธีไหมครับใน access ที่ให้กดปุ่มเดียวออกเป็นไฟล์ excel เลยครับ แต่ดูเหมือนจะยากตรงใส่วันที่ มันต้องเปิดออกมาใส่วันที่ใหม่ทุกครั้งที่ต้องการรายงานครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R15711
ตัวอย่างโคดส่วนหัวครับ
ตรงวันที่ตรงนี้ต้องใส่ทุกครั้งก่อนคิวรี่
--เปลี่ยนแปลงข้อมูลที่นี่---เริ่ม
set @datefrom = '201204010000'
set @dateto = '201303312359'
--เปลี่ยนแปลงข้อมูลที่นี่--จบ
มีทางทำได้ไหมครับ ถ้าเป็นปุ่มบน access เมื่อกด output to excel จะมีวันที่ขึ้นมาถามเพื่อเขียนเข้าไปแทนที่ตรงวันที่นั้นครับ
--เปลี่ยนแปลงข้อมูลที่นี่---เริ่ม
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 นี้ไปวางแล้วลงรันดูครับ
ผมจินตนาการเอานะครับ แต่ไม่มีที่ให้ลอง
ลองเอา 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'.
แบบนี้ครับ
! 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'
Time: 0.2406s
ส่วนที่ที่ส่งออกมา ตั้งได้จากที่ตั้งค่า ไฟล์ที่ออกมาจะออกมา เป็นชื่อคิวรี
ของฟอร์ม หรือรายงานนั้น ฟิลด์ที่ออกมา ก็ตามคิวรี่เหมือนกัน