บทที่ 303: ฟอร์มโปร่งแสง และเชื่อมต่อกับ server ผ่าน Hidden IE
:: เปิดดูทุก ๆ ตอน ::
ข้อควรทราบ
ฮิปโปจะอ้าปากรออาหาร แต่เสือชอบกระโจนเข้าตะครุบเหยื่อ
- ในเครื่องคอมพิวเตอร์เครื่องเดียวกัน สามารถเปิด project ของ VB มาพัฒนาได้พร้อมกันหลาย project และทดสอบแต่ละ project ได้แยกกันโดยอิสระ
- ผู้เรียนควรเข้าใจคำว่า ตัวแปร การเลือกตามเงื่อนไข การทำซ้ำ และมีความรู้ด้านภาษาอังกฤษ พอสมควร จะช่วยให้ศึกษาตัวอย่างเหล่านี้ได้ง่ายขึ้น
- ในแฟ้ม .zip ของแต่ละบท จะมีแฟ้ม .vbp และ .frm ซึ่งผู้ศึกษาสามารถนำไปทดสอบประมวลผล ในเครื่องที่ติดตั้งโปรแกรม Visual basic ได้
- เมื่อต้องการพิมพ์ภาษาไทย (Thai language) ใน code ด้วย Menu bar, Tools, Options, Edit format, Normal text ให้ท่านเปลี่ยน font name จาก Courier new เป็น Fixedsys จะทำให้ใช้ภาษาไทยได้
- สามารถเพิ่ม Components หรือ Control ด้วย Ctrl+T เช่น
- บทเรียนทั้งหมดนี้ ทดสอบกับ Visual basic 6.0 ของบริษัท Microsoft corp. และใช้งานบนระบบปฏิบัติการ Microsoft Windows
- โปรแกรมที่ผมเขียนเป็นตัวอย่างส่วนใหญ่จะกำหนดชื่อ text หรือ command ตามที่ระบบกำหนดให้(Default name) จะไม่พยายามเปลี่ยน และจะไม่ใช้ control array โดยไม่จำเป็น เวลาท่านศึกษา ก็จินตนาการตามผมได้เลยว่าจะไม่พยายามทำอะไรที่ยุ่งยากซับซ้อน เพราะผมไม่อยากงงเวลากลับมาดูในภายหลัง
|
เพื่อนของผม ชื่อ อ.ถนอม คณิตปัญญาเจริญ (thanom@yonok.ac.th)
มีอะไรเรื่อง VB ที่หาไม่เจอในหนังสือ ผมก็ถามเขานี่หละ
มีเป็น Freelance ด้าน Website และ Visual Basic
Tel.0-9757-1846, 0-5431-6809
หาข้อมูลเพิ่มเติมได้ที่ thanom.net
ตัวอย่างสั้น
Ex 1. คำนวณเวลา
x = "12:12:16"
y = "13:12:19"
sx = Hour(x) * 3600 + Minute(x) * 60 + Second(x)
sy = Hour(y) * 3600 + Minute(y) * 60 + Second(y)
MsgBox sy - sx
MsgBox DateDiff("s", x, y)
'Output is 3603
Ex 2. Text File #
Dim fso, MyFile
Set fso=CreateObject("Scripting.FileSystemObject")
Set MyFile=fso.CreateTextFile("c:\test.txt",true)
MyFile.WriteLine("This is a test.")
MyFile.Close
Ex 3. แสดงภาษาปัจจุบันของ taskbar
Private Declare Function GetLocaleInfo& Lib "KERNEL32" Alias "GetLocaleInfoA" ( _
ByVal Locale&, ByVal LCType&, ByVal lpLCData$, ByVal cchData&)
Private Declare Function GetKeyboardLayout& Lib "USER32" (ByVal dwLayout&)
Private Sub Form_Load()
Dim r&, strng$, buffer As String * 256
r = GetKeyboardLayout(0)
r = Val("&H" & Right(Hex(r), 4))
r = GetLocaleInfo(r, &H2, buffer, 256 - 1)
MsgBox buffer
Unload Me
End Sub
5. ADODB + ODBC
+ http://www.thaiabc.com/asp/dthai97.mdb 70 KB
5.1 สร้าง module ชื่อ autoexec
' Menu Bar, Project, Project Propoties, Startup Object=Sub Main
' Menu Bar, Project, Project References
' - Visual Basic For Applications
' - Visual Basic runtime objects and procedures
' - Visual Basic objects and procedures
' - OLE Automation
' - Microsoft ActiveX Data Objects 2.1 Library
' - Microsoft DAO 3.51 Object Library
' - Microsoft Data Binding Collection VB 6.0 (SP4)
' - Microsoft Data Environment Instance 1.0
' - Microsoft Data Report Designer 6.0 (SP4)
' - Microsoft Data Formatting Object Library 6.0 (SP4)
Option Explicit
Public cndb As New ADODB.Connection
Sub main()
Set cndb = New ADODB.Connection
With cndb
.ConnectionString = "dsn=dthai97"
.CommandTimeout = 20
.CursorLocation = adUseClient
.Open
End With
Form1.Show
End Sub
5.2 สร้างฟอร์มชื่อ form1
' form1 form
Option Explicit
Dim rs As New ADODB.Recordset
Private Sub Command1_Click()
Set rs = cndb.Execute("select * from tbthai")
If rs.RecordCount <= 0 Then Exit Sub
rs.Requery
Dim txt As String
txt = ""
Do While Not rs.EOF
txt = txt & rs.Fields(0) & " " & rs!fid & Chr(13)
rs.MoveNext
Loop
MsgBox txt
End Sub
|
การเชื่อมต่อฐานข้อมูล (Database Connection)
|
จุดประสงค์การเรียนรู้ เรื่อง การเชื่อมต่องฐานข้อมูล
1. ทราบว่ามีการเชื่อมต่อกี่แบบ
2. ทราบว่าแต่ละแบบใช้งานอย่างไร
3. ทดสอบเขียนโปรแกรมที่ง่ายที่สุดกับ .MDB
4. เข้าใจคำว่า ระยะทางหมื่นลี้ เริ่มที่ก้าวแรก
1. Data Control 
คือ การเชื่อมต่อฐานข้อมูลแบบใช้ Control เชื่อมต่อฐานข้อมูล เป็นวิธีที่ง่าย และสะดวก เพราะจัดการกับฐานข้อมูลได้โดยอัตโนมัติ สามารถใช้ DBGrid แสดงข้อมูลเป็นตาราง
หรือแสดงแต่ละเขตข้อมูล ผ่าน textbox แต่มีข้อจำกัดเรื่องจำนวนตาราง การเลือกข้อมูลบางส่วน
การตรวจสอบข้อมูลก่อนจัดเก็บ และใช้ทรัพยากรมาก
ขั้นตอนทดสอบให้เห็นผล ในเบื้องต้น
1. นำ Data Control จาก Tool Box ไปวางใน Form
2. ต้องมีคำว่า Data1.refresh มิเช่นนั้นมีปัญหา
3. นำ code ด้านล่างไปใส่ใน Code View
4. ใช้ Initialize() แต่ Load() ไม่ได้
5. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
6. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ
2. ADODC (ADO Data Control) 
คือ การเชื่อมต่อฐานข้อมูลแบบใช้ Control เชื่อมต่อฐานข้อมูล เป็นวิธีที่ง่าย และสะดวก สามารถใช้ SQL เลือกข้อมูลได้ ซึ่งยืดหยุ่นกว่าการใช้ชื่อตารางใน Data Control
ขั้นตอนทดสอบให้เห็นผล ในเบื้องต้น
1. เพิ่ม Components (Ctrl-T) .. (MSADODC.OCX)
ชื่อ Microsoft ADO Data Control 6.0 (OLEDB)
2. นำ ADODC จาก Tool Box ไปวางใน Form
3. ต้องมีคำว่า ADODC1.refresh มิเช่นนั้นมีปัญหา
4. นำ code ด้านล่างไปใส่ใน Code View
5. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
6. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ
3. DAO (Data Access Object)
คือ การเชื่อมต่อฐานข้อมูลแบบตัวเแปรชนิดพิเศษ เพื่อติดต่อฐานข้อมูล สามารถควบคุมได้อย่างยืดหยุ่น เช่น ตรวจความถูกต้อง หรือยกเลิกข้อมูลที่ได้แก้ไข
สามารถใช้ SQL(Structured Query Language) ได้
ขั้นตอนทดสอบให้เห็นผล ในเบื้องต้น
1. เพิ่ม Menu Bar, Project, Reference
ชื่อ Microsoft DAO 3.51 Object
2. จึงใช้ workspace, database และ recordset ได้
3. นำ code ด้านล่างไปใส่ใน Code View
4. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
5. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ
4. ADODB (ActiveX Data Objects Database)
คือ การเชื่อมต่อฐานข้อมูลแบบตัวเแปรชนิดพิเศษ เพื่อติดต่อฐานข้อมูล สามารถควบคุมได้อย่างยืดหยุ่น เช่น ตรวจความถูกต้อง หรือยกเลิกข้อมูลที่ได้แก้ไข
สามารถใช้ SQL(Structured Query Language) ได้ (แบบใหม่)
ขั้นตอนทดสอบให้เห็นผล ในเบื้องต้น
1. เพิ่ม Menu Bar, Project, Reference
ชื่อ Microsoft ActiveX Data Objects 2.0 Library
2. จึงใช้ adodb.connection, adodb.recordset ได้
3. นำ code ด้านล่างไปใส่ใน Code View
4. อ่านเพิ่มเติม #
4. อ่านข้อมูลมาแสดงใน msgbox เมื่อ Start Form
5. ให้ฝึกเปลี่ยน ตาราง และเขตข้อมูล ท่านจะได้ชำนาญ
|