2009-04-08

ใช้ ADO ใน excel ตอนส่งข้อมูลเข้าเก็บในฐานขัอมูล

ทดลองทำการเชื่อมต่อไปยัง ฐานข้อมูล sql server express 2005 คราวนี้ลองทดลองป้อนข้อมูลเช้าไปดู
ในที่นี้สมมุติว่า เราได้ทำการ สร้างฐานข้อมูล OrderTest มีฟิลด์ทั้งหมดสามฟิลด์ คือ
eq_reserv_form_number,eq_reserv_name,eq_reserv_quantity
เอกสารการใช้งานค้นหาได้ที่ http://msdn2.microsoft.com/en-us/library/ms678262.aspx หรือจะติดตั้ง จากชุดพัฒนา MDAC ( MDAC sdk ) แต่รู้สึกว่าต้องเป็น microsoft genuine ถึงจะดาวน์โหลดได้
======= ตัวอย่างโค้ด ======
Dim con As New ADODB.ConnectionDim con_err As ADODB.ErrorDim conCmd As New ADODB.Command
Dim sqlCmd As StringDim err_des As StringDim err_num As String
Dim frmNum as stringDim csName as stringDim csOdrName as string
'กำหนดคำสั่ง sql
sqlCmd = _"INSERT INTO equipment(eq_reserv_form_number,eq_reserv_name,eq_reserv_quantity)" & _"values ('" + frmNum + "','" + csName + "'," + csOdrname + ")"
Set con = New ADODB.Connection
'ตรวจจับข้อผิดพลาด
On Error GoTo DisplayConnectErr
'เชื่อมต่อกับ SQL 2005 โดยใช้ sql native client
con.ConnectionString = "Provider=SQLNCLI.1 ;Integrated Security = SSPI ;Data Source=udomsak\sqlexpress;Initial Catalog=OrderTest"con.Open
'ตั้งค่าตัวแปร conCmdSet conCmd = New ADODB.Command
'ระบุว่า session ที่ใช้ในการเชื่อมต่อSet conCmd.ActiveConnection = con
'เตรียม sql string conCmd.CommandText = sqlCmd
'สั่ง execute conCmd.Execute

'จับข้อผิดพลาด
DisplayConnectErr:
For Each con_err In con.Errors
err_des = con_err.Descriptionerr_num = Hex(con_err.Number)
Next
If err_des = "" Then
ElseMsgBox err_des + " ERROR-NUM IS-> " & err_numEnd If

No comments: