20120427

Microsoft Access Config (DSN) - Data Source (ODBC)

0 comments
DSN Data Source ในการเขียนโปรแกรมหากต้องการติดต่อกับ Microsoft Access ผ่าน ODBC จะต้องทำการ Set DSN Name ก่อนครับถึงจะสามารถทำการเรียก Database ใช้งานได้

ไปที่เมนู Start -> Setting -> Control Panel -> Administrative Tools

Microsoft Access Data Source (ODBC)

โปรแกรม ODBC


Microsoft Access Data Source (ODBC)

เลือกที่ Tab System DSN -> Add


Microsoft Access Data Source (ODBC)

เลือกที่ Microsoft Access Driver (*.mdb) -> Finish


Microsoft Access Data Source (ODBC)

กำหนดชื่อ Data Source Name :
และเลือกที่ Select เพื่อเลือกไไฟล์ database ที่ต้องการ


Microsoft Access Data Source (ODBC)


ในที่นี้ผมกำหนดชื่อเป็น mydatabase และตอนเรียกใช้งานผมจะต้องเรียกด้วยชื่อนี้เท่านั้ 

By : ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)
  Score Rate :  
  Create/Update Date : 2008-07-19 22:03:37 / 2008-12-18 00:03:08
  View : 30,197
  Download : Download  Microsoft Access Config (DSN) - Data Source (ODBC)
Read more ►

PHP Microsoft Access Connect to Database (PHP ODBC)

0 comments
PHP Microsoft Access Connect to Database (PHP ODBC) ในการที่จะเขียน PHP ติดต่อกับฐานข้อมูล Microsoft Access นั้นไม่มีฟังก์ชั่นสำหรับการติดต่อโดยตรงเหมือนกับ MySQL,SQL Server หรือ Oracle ครับ แต่ก็ใช่ว่าจะไม่มีทางเลือกครับ เพราะ PHP มี function php_odbc สำหรับการติดต่อผ่าน Driver นี้อยู่แล้วครับ และไม่จำเป็นว่าจะต้องเป็น Microsoft Access เท่านั้นครับ PHP สามารถติดต่อได้หลาย ๆ Database ที่มีการ Connect ผ่าน ODBC ได้ครับ

DSN ODBC



Syntax

$objConnect = odbc_connect($dsn-name,$user,$pass);


ตัวอย่างการเขียนติดต่อ PHP กับ Microsoft Access ผ่าน ODBC


phpMsAccessConnect.php

01.
02.
03.ThaiCreate.Com PHP & Access Tutorial
04.
05.
06.
07.$objConnect = odbc_connect("mydatabase","","");
08.if($objConnect)
09.{
10.echo "Database Connected.";
11.}
12.else
13.{
14.echo "Database Connect Failed.";
15.}
16. 
17.odbc_close($objConnect);
18.?>
19.
20.


PHP & Ms Access


Reference : http://www.thaicreate.com/php-manual/ref.uodbc.html
Read more ►

20110606

เครื่องหมายเปรียบเทียบ (comparison operator)

0 comments
SQL เป็นภาษามาตรฐานสำหรับฐานข้อมูล Relational Database Management System (RDBMS) ตามมาตรฐานของ ANSI (American National Standard Institute) SQL (ออกเสียงว่า "ess-que-el" หรือ "ซี-เคลว") ย่อมาจาก Structured Query Language คิดค้นโดยนักวิทยาศาสตร์ของ IBM ในทศวรรษ 1970 ในปัจจุบัน ANSI (American National Standard Institute) ได้ประกาศให้ SQL เป็น ภาษามาตรฐานสำหรับระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System ย่อเป็น RDBMS) ระบบฐานข้อมูลในปัจจุบันเกือบทั้งหมด เป็นแบบระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) เช่น Oracle, Sybase, Microsoft SQL Server, Microsoft Access, DB2 ของ IBM เป็นต้น ถึงแม้ว่า ฐานข้อมูลแบบ RDBMS ทุกระบบ จะสามารถใช้คำสั่งพื้นฐานของ SQL เหมือนกัน แต่ทุกระบบอาจจะมีคำสั่งพิเศษของตัวเองที่ ระบบอื่นอาจจะใช้ไม่ได้

SELECT STATEMENT : คำสั่งที่ใช้ในการสร้างแบบสอบถาม

ประโยคคำสั่ง SELECT ใช้ในการสร้างคิวรี่ หรือการสอบถามกับฐานข้อมูล และเลือกดึงข้อมูลที่ตรงกับเกณฑ์ที่กำหนด

ไวยากรณ์ ประโยคคำสั่ง SELECT
SELECT [ALL | DISTINCT] column1[,column2]
FROM table1[,table2]
[WHERE conditions]
[GROUP BY column-list]
[HAVING conditions]
[ORDER BY column-list [ASC | DESC] ];

[ ] ตัวเลือก
ตัวอย่าง
SELECT hn, dayin, name, age
FROM pttbl
WHERE age > 30;

ประโยคคำสั่งนี้จะเลือกค่าทั้งหมด ในคอลัมน์ hn, dayin, name และ age จาก table “pttbl ที่ age มีค่ามากกว่า 30
Note: ต้องมีเครื่องหมาย semicolon(;) ปิดท้ายประโยค เพื่อชี้ว่าประโยคคำสั่ง SQL จบสมบูรณ์และพร้อมที่จะแปล
การสร้างแบบสอบถาม(Query) ในโปรแกรม Access
1. คลิกแถบ Queries > New > Design View > O
2. คลิกชื่อตาราง pttbl > Add > Close
3. นำ Field ชื่อ hn, dayin, name และ age มาใส่ใน Field Properties โดยการ Drag และ Drop ที่ละ Field หรือ โดยการดับเบิลคลิกที่ชื่อ Field ก็ได้
4. ใส่ Criteria เป็น > 30 ในคอลัมน์ age > Save > qry_age_more_30_pttbl
จะ ได้ผลตามรูปที่ 1
รูปที่ 1
การสร้างแบบสอบถาม(Query) ในโปรแกรม Access ด้วย SQL
1. คลิก View > SQL View
2. พิมพ์ประโยคคำสั่ง SELECT ตามไวยากรณ์ข้างต้น
SELECT pttbl.hn, pttbl.dayin, pttbl.name, pttbl.age
FROM pttbl
WHERE pttbl.age>30;
3. Save > qry_age_more_30_pttbl
จะได้ผลตามรูปที่ 2
รูปที่ 2
จากการสร้างทั้งสองแบบ เมื่อ View จะได้ผลตามรูปที่ 3
รูปที่ 3
เครื่องหมายเปรียบเทียบ (comparison operator)
= เท่ากับ
> มากกว่า
< น้อยกว่า
>= มากกว่า หรือเท่ากับ
<= น้อยกว่า หรือเท่ากับ
<> หรือ != ไม่ เท่ากับ
เครื่องหมายเปรียบเทียบอื่นๆ
LIKE ทดสอบเปรียบ เทียบข้อความ
NOT LIKE หาค่าที่อยู่นอกเหนือจาก LIKE
NULL ทดสอบเปรียบ เทียบค่าว่าง
NOT NULL ทดสอบเปรียบเทียบค่าที่ไม่ใช่ค่าว่าง
ตัวอย่าง
SELECT hn, dayin, name, age
FROM pttbl
WHERE pttbl.name LIKE "จ*";
ประโยค คำสั่งข้างบนจะเลือก แถว/ค่า ในคอลัมน์ hn, dayin, name และ age จาก table “pttbl” ที่มี name เริ่มต้นด้วย ‘จ’ ซึ่งจะส่งชื่อของผู้ป่วยที่ขึ้นต้นด้วย จ ออกมา

จะได้ผลตามรูปที่ 4 รูปที่ 5 และรูปที่ 6
รูปที่ 4

รูปที่ 5

รูปที่ 6
แสดงว่าในฐานข้อมูล มีผู้ป่วยที่มีชื่อขึ้นต้นด้วย จ มี 2 คน
ตัวอย่าง
SELECT hn, dayin, name, age
FROM pttbl
WHERE name = NULL;
ประโยคคำสั่งข้างบนจะ เลือก แถว/ค่า ในคอลัมน์ hn, dayin, name และ age จาก table “pttbl” ที่มี name เป็นค่าว่าง

SELECT pttbl.hn, pttbl.dayin, pttbl.name, pttbl.age
FROM pttbl
WHERE (((pttbl.name) Is Null));

ตัวอย่าง
SELECT hn, dayin, name, age
FROM pttbl
WHERE name = Is Not Null;
ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า ในคอลัมน์ hn, dayin, name และ age จาก table “pttbl” ที่มี name ไม่ใช่ค่าว่าง

SELECT pttbl.hn, pttbl.dayin, pttbl.name, pttbl.age
FROM pttbl
WHERE (((pttbl.name)Is Not Null));


ALL และ DISTINCT เป็นคีย์เวิร์ดที่ใช้ในการควบคุมเลือกข้อมูลให้แสดง ทั้งหมด (ALL) หรือเฉพาะเรคคอร์ดแบบไม่ซ้ำ (DISTINCT) ในคิวรี่ ถ้าต้องการดึงเฉพาะเรคคอร์ดในคอลัมน์ที่ระบุแบบไม่ซ้ำให้ใช้คีย์เวิร์ด DISTINCT โดย DISTINCT จะคัดเรคคอร์ดซ้ำออกไปสำหรับคอลัมน์ที่ระบุ หลังจากประโยคคำสั่ง
ตัวอย่าง
SELECT DISTINCT age
FROM pttpl;
ประโยคคำสั่งนี้ส่งออกค่า age ที่ไม่ซ้ำกันจาก table “pttbl”
Read more ►

ตัวดำเนินการ Between...And

0 comments
กำหนดว่าจะให้ค่าของนิพจน์มีค่าอยู่ในช่วงค่าที่ระบุหรือไม่ คุณสามารถใช้ตัวดำเนินการนี้ได้ในคำสั่ง SQL (สตริง/คำสั่ง SQL: นิพจน์ที่กำหนดคำสั่ง SQL เช่น SELECT, UPDATEหรือ DELETEและรวมถึงส่วนคำสั่ง เช่น WHERE และ ORDER BY โดยทั่วไปจะใช้สตริง/คำสั่ง SQL ในแบบสอบถามและในฟังก์ชันการรวม)
ไวยากรณ์
expr [Not] Between value1 And value2
ไวยากรณ์ของตัวดำเนินการ Between...And มีส่วนต่างๆ ดังนี้
ส่วน คำอธิบาย
expr นิพจน์ที่ระบุเขตข้อมูลที่มีข้อมูลที่คุณต้องการประเมิน
value1, value2 นิพจน์ที่คุณต้องการใช้ประเมินเปรียบเทียบกับ expr
ข้อสังเกต
ถ้าค่าของ expr อยู่ระหว่าง value1 และ value2 (รวมทุกจำนวนระหว่างกลาง) ตัวดำเนินการ Between...And จะส่งกลับค่า True หรือมิฉะนั้นก็จะส่งกลับค่า False คุณสามารถใส่ตัวดำเนินการแบบตรรกะ Not เพื่อประเมินเงื่อนไขตรงข้ามได้ (ซึ่งก็คือ expr อยู่นอกช่วงที่ถูกกำหนดโดย value1 และ value2 หรือไม่)
คุณอาจใช้ Between...And เพื่อกำหนดว่าค่าของเขตข้อมูลจะอยู่ภายในช่วงตัวเลขที่ระบุหรือไม่ ตัวอย่างต่อไปนี้จะกำหนดว่าใบสั่งซื้อจะถูกส่งมายังตำแหน่งที่ตั้งซึ่งอยู่ ในช่วงรหัสไปรษณีย์หนึ่งหรือไม่ ถ้ารหัสไปรษณีย์อยู่ระหว่าง 98101 กับ 98199 ฟังก์ชัน IIf จะส่งกลับ “Local” หรือมิฉะนั้นจะส่งกลับ “Nonlocal”
SELECT IIf(PostalCode Between 98101 And 98199, “Local”, “Nonlocal”) FROM Publishers
ถ้า expr, value1 หรือ value2 เป็นค่า Null (Null: ค่าที่คุณสามารถป้อนลงในเขตข้อมูลหรือใช้ในนิพจน์หรือแบบสอบถามเพื่อบ่งชี้ ถึงข้อมูลที่หายไปหรือข้อมูลที่ไม่รู้จัก ใน Visual Basic คำสำคัญ Null จะหมายถึงค่า Null โดยบางเขตข้อมูล เช่น เขตข้อมูลคีย์หลักจะไม่สามารถมีค่า Null ได้) แล้ว ตัวดำเนินการ Between...And จะส่งกลับค่า Null
เนื่องจากอักขระตัวแทน (สัญลักษณ์แทน: อักขระที่ใช้ในคำถามและนิพจน์เพื่อรวมระเบียนทั้งหมด ชื่อแฟ้ม หรือรายการอื่นที่เริ่มต้นด้วยอักขระเฉพาะหรืออักขระที่ตรงกับรูปแบบเฉพาะ) เช่น * จะถือว่าเป็นอักขระจริง คุณจึงไม่สามารถใช้กับตัวดำเนินการ Between...And ได้ ตัวอย่างเช่น คุณไม่สามารถใช้ 980* และ 989* เพื่อค้นหารหัสไปรษณีย์ทั้งหมดที่ขึ้นต้นด้วย 980 จนถึง 989 ได้ แต่คุณมีทางเลือกสองทางเพื่อดำเนินการดังกล่าวให้เสร็จสมบูรณ์ คุณสามารถเพิ่มนิพจน์ในแบบสอบถามเพื่อเอาอักขระสามตัวทางซ้ายของเขตข้อมูล ข้อความและใช้ตัวดำเนินการ Between...And กับอักขระเหล่านั้น หรือคุณสามารถเพิ่มอักขระพิเศษในค่าสูงสุดและต่ำสุด ในกรณีนี้คือ 98000 ถึง 98999 หรือ 98000 ถึง 98999 - 9999 ถ้ามีการใช้รหัสไปรษณีย์ส่วนขยาย (คุณต้องละเว้น – 0000 จากค่าต่ำสุดเพราะไม่เช่นนั้น 98000 จะหายไปถ้ารหัสไปรษณีย์บางรหัสมีส่วนขยายและบางรหัสไม่มี)
Read more ►

ตัวดำเนินการ Like

0 comments
เปรียบเทียบนิพจน์ สายอักขระกับรูปแบบในนิพจน์ SQL
ไวยากรณ์
expression Likepattern
ไวยากรณ์ของตัวดำเนิน การ Like มีส่วนต่างๆ เหล่านี้
ส่วน คำอธิบาย
expression นิพจน์ SQL ที่ใช้ในส่วนคำสั่ง WHERE
pattern สายอักขระหรือสายอักขระของตัวอักษร ซึ่ง expression ถูกนำมาเปรียบเทียบด้วย

หมายเหตุ
คุณสามารถใช้ตัวดำเนินการ Like เพื่อหาค่าในเขตข้อมูลหนึ่ง ซึ่งตรงกันกับรูปแบบที่คุณระบุ สำหรับ pattern คุณสามารถระบุค่าที่สมบูรณ์ (เช่น Like “Smith”) หรือคุณสามารถใช้ สัญลักษณ์ ตัวแทน เพื่อหาช่วงของค่าก็ได้ (เช่น Like “Sm*”)
ใน นิพจน์ คุณสามารถใช้ตัวดำเนินการ Like เพื่อเปรียบเทียบค่าของเขตข้อมูลกับนิพจน์สายอักขระได้ ตัวอย่างเช่น ถ้าคุณใส่ Like “C*” ในแบบสอบถาม SQL แบบสอบถามจะส่งกลับค่าของเขตข้อมูลทั้งหมดที่ขึ้นต้นด้วยตัวอักษร C ใน แบบ สอบถามแบบพารามิเตอร์ คุณสามารถพร้อมท์ผู้ใช้เพื่อให้ใส่รูปแบบที่จะใช้ในการค้นหาได้
ตัวอย่าง ต่อไปนี้จะส่งกลับข้อมูลที่ขึ้นต้นด้วยตัวอักษร P ตามด้วยตัวอักษรใดก็ได้ระหว่าง A ถึง F และตัวเลขสามตัว
Like “P[A-F]###”
ตารางต่อไปนี้แสดงวิธีที่คุณสามารถใช้ Like เพื่อทดสอบนิพจน์สำหรับรูปแบบต่างๆ

ลักษณะการเปรียบเทียบ

รูปแบบ
ตรงกัน
(ส่งกลับค่า True)
ไม่ตรงกัน
(ส่งกลับค่า False)
อักขระหลายอักขระ a*a aa, aBa, aBBBa aBC
*ab* abc, AABB, Xab aZb, bac
อักขระพิเศษ a[*]a a*a aaa
อักขระหลายอักขระ ab* abcdefg, abc cab, aab
อักขระตัวเดียว a?a aaa, a3a, aBa aBBBa
ตัวเลขตัวเดียว a#a a0a, a1a, a2a aaa, a10a
ช่วงของอักขระ [a-z] f, p, j 2, &
อักขระภายนอกช่วง [!a-z] 9, &, % b, a
ไม่ใช่ตัวเลข [!0-9] A, a, &, ~ 0, 1, 9
หลายแบบร่วมกัน a[!b-m]# An9, az0, a99 abc, aj0
Read more ►

20110605

MsysACEs ,MsysModules,MsysObject มาได้อย่างไรทั้งๆที่ผมไม่ได้สร้าง

0 comments
มีแฟนประจำส่งเมลล์มาหาผม และถามไว้อย่างนี้ครับ

เรียนอาจารย์สุภาพครับ 
ผมได้ส่ง ฐานข้อมูลมาให้อาจารย์ซึงก็เป็นฐานข้อมูลที่ผมได้ดาวน์โหลดมา อยาก จะให้อาจารย์ช่วยดูให้หน่อยครับ ว่าตารางเหล่า นี้ คือ MsysACEs ,MsysModules,MsysObject มาได้อย่างไรทั้งๆที่ผมไม่ได้ สร้าง และมีทุกฐานข้อมูลด้วย ไม่สามารถลบและแก้ไขได้  อาจารย์ช่วยชี้แนะ หน่อยครับ ว่าจะลบและแก้ไขอย่างไร 
ขอบคุณครับ 
ป.ล.อาจารย์ตอบไปที่บอร์ด ก็ได้ครับ 

ไฟล์เหล่านี้เป็นไฟล์ System ของ Access มันครับ และจะสร้างไว้ ใน Database ทุกตัว เพราะมันจะเก็บที่สำคัญ เช่น ชื่อของ Object ต่างที่เรา ได้สร้างขึ้น มันจึงไม่สามารถจะถูกลบออกได้
ถ้าตารางเหล่านี้หาย หรือติดขึ้นจะทำให้เราไม่สามารถจะเปิดเข้าไฟล์นั้นได้เลยครับ 
ฉะนั้นอย่าได้ลบมันนะครับ
ที่เราเห็นไฟล์เหล่านี้ เพราะเราไปกำหนดใน Options ให้มัน แสดง System Objects ครับ ถ้าไม่ต้องการให้รกตา ก็ให้ไปที่ เมนู Tools>Options>View tab>คลิกเครื่องหมายถูกที่ ช่อง System Objects ในส่วนของ Show ออกครับ

ตารางเหล่านี้ บางครั้งผมจะใช้ประโยชน์จากมันด้วย เช่น หาว่ามี Objects ชื่ออะไรบ้าง โดยไม่ต้องอาศัย Documentors เลย
Read more ►

20110525

โปรแกรมแบบ Multi- User

0 comments

โปรแกรมแบบ Multi- User

การออกแบบโปรแกรมเพื่อการประยุกต์ในสภาพแวดล้อมผู้ใช้หลายคนใน Microsoft Access ใช้การแยกระหว่างไฟล์ที่เป็นฐานข้อมูล (ต่อไปเรียกว่าฐานข้อมูล) กับไฟล์ที่เก็บอ๊อบเจค (ต่อไปเรียกว่าโปรแกรมประยุกต์) โดยไฟล์ที่เก็บอ๊อบเจค หรือโปรแกรมประยุกต์ทำหน้าที่เป็นลูกข่าย การสร้างระบบงานลักษณะนี้สามารถประยุกต์การทำงานบน LAN และมีความสะดวกในการแก้ไขโปรแกรมประยุกต์ เนื่องจากสามารถแทนที่โปรแกรมประยุกต์ โดยไม่มีผลกับข้อมูล

การวางระบบโปรแกรมโดยการแยกระหว่างไฟล์ของโปรแกรมกับไฟล์ฐานข้อมูล

การจัดวางระบบโปรแกรม ควรแยกระหว่างฐานข้อมูลและโปรแกรม ทำให้มีความสะดวกในการปรับปรุง โปรแกรม และโดยเฉพาะอย่างยิ่งการจัดวางระบบในกรณีใช้งานแบบผู้ใช้หลายคน (Multiusers) โดยการสร้างฐานข้อมูลเพื่อใช้ในการเก็บ Table และไฟล์ฐานข้อมูลอื่น (ไฟล์โปรแกรม) ใช้เก็บคิวรี่ ฟอร์ม รายงาน มาโคร เพจ และโมดูล และใช้การเชื่อม Table (Link Table) กับไฟล์ฐานข้อมูลที่เก็บ Table
ฐานข้อมูลที่เป็นแบบ Link Table สังเกตได้จากสัญลักษณ์ลูกศรหน้า Table
การแยกระหว่างโปรแกรมกับฐานข้อมูลสามารถทำได้ 2 ลักษณะ คือ
  1. วางแผนการแยกระหว่างโปรแกรมกับฐานข้อมูลตั้งแต่เริ่มต้น
  2. การแยกโปรแกรมกับฐานข้อมูด้วยคำสั่ง Database Splitter

วางแผนการแยกระหว่างโปรแกรมกับฐานข้อมูลตั้งแต่เริ่มต้น

  1. การสร้าง Link Table สร้างโดยการใช้คำสั่ง Link Table ใน Get External Data ของเมนู File
  2. เมื่อไดอะล๊อกบ๊อกซ์ Link ปรากฏขึ้นให้เลือกตำแหน่งของฐานข้อมูล แล้วคลิกปุ่ม Link
  3. จากนั้นจะปรากฏไดอะล๊อกบ๊อกซ์ Link Table ให้เลือกชื่อ Table แล้วคลิกปุ่ม OK
  4. หลังจากนั้น ไอคอน และชื่อ table ที่มีลูกศรนำหน้าจะปรากฏใน แท็บ Table ในโปรแกรมที่สร้างขึ้น
  5. จากนั้นให้ทำการสร้างอ๊อบเจคอื่นสำหรับการประยุกต์
  6. ถ้านำไปใช้งานจริงแล้วมีการเปลี่ยนแปลงตำแหน่งของฐานข้อมูล ซึ่งต่างจากเดิมให้ใช้คำสั่ง Linked Manager เพื่อเปลี่ยนแปลงการชี้ไปยังฐานข้อมูลภายในคำสั่ง Database Utilities ที่เมนู Tools

การแยกโปรแกรมกับฐานข้อมูด้วยคำสั่ง Database Splitter

เมื่อพัฒนาโปรแกรมเสร็จแล้วจึงนำมาแยก ให้ใช้คำสั่ง Database Splitter โดย Microsoft Access 2000 คำสั่ง Database Splitter อยู่ภายในคำสั่ง Database Utilities ที่เมนู Tools (เครื่องมือ) ส่วน Microsoft Access97 คำสั่งนี้อยู่คำสั่ง Add-Ins ที่เมนู Tools จะมี wizard แนะนำขั้นตอนการแยกระหว่างฐานข้อมูลกับโปรแกรมประยุกต์
การแยกฐานข้อมูลต้นฉบับจะได้รับการแปลงเป็นโปรแกรมประยุกต์ และฐานข้อมูลที่เกิดจากการใช้คำสั่ง Database Splitter จะเป็นฐานข้อมูล
Read more ►
 

Copyright © Access เบื้องต้น Design by Gu