ÓÃExcel+VBA+SQL Server½øÐÐÊý¾Ý´¦Àí
ÓÃExcel+VBA+SQL Server½øÐÐÊý¾Ý´¦Àí
ʹÓÃExcel+VBA+SQL Server½øÐÐÊý¾Ý´¦ÀíÊÇÒ»ÖÖ¼òµ¥ÓÐЧ·½·¨£¬ÕÆÎÕÒÔÏ»ù´¡ÖªÊ¶ÊµÏÖ¿ìËÙÈëÃÅ(ÕÆÎÕexcel/vba/sqlserver¸÷1%ÄÚÈÝ£¬Äã¾ÍÄܳÉΪÊý¾Ý´¦Àí¸ßÊÖµÄ:))£º
Ò»¡¢Excel»ù´¡ÖªÊ¶
Á˽⹤×÷²¾(Workbook)¡¢¹¤×÷±í(Worksheet)¡¢µ¥Ôª¸ñ(Cell)µÈµÄ»ù±¾¸ÅÄÊìϤһЩ»ù±¾²Ù×÷¡£
¶þ¡¢SQL Server»ù´¡ÖªÊ¶
²Î¼ûhttp://distance.njtu.edu.cn/course/8100062/kejian/index.htm
1¡¢Êý¾Ý¿âÓйظÅÄÊý¾Ý¿â¡¢±í¡¢¼Ç¼¡¢×Ö¶Î
A)Êý¾Ý¿â(Database)
B)±í(Table)¡¢¼Ç¼£¨ÐУ¬Row,Record£©¡¢×ֶΣ¨ÁУ¬Column,Field£©...
2¡¢³£¼ûÊý¾Ý²Ù×÷µÄSQLÃüÁselect, insert , update ,delete
Èý¡¢VBA»ù´¡ÖªÊ¶£º
1¡¢»ù±¾¸ÅÄî¡£
2¡¢»ù±¾¿ØÖƽṹ£º
·Ë³Ðò½á¹¹:³ÌÐò°´Ë³ÐòÖ´ÐÐ;
··ÖÖ§½á¹¹ÃüÁî:
if Ìõ¼þ then
<Èç¹ûÌõ¼þ³ÉÁ¢Ö´Ðб¾Óï¾ä¿é>
end if
»ò£º
if ... then
...
else
...
end if
»ò£º
if ... then
...
elseif ...
...
else
...
end if
µÈ¡£¡£
·Ñ»·½á¹¹ÃüÁ
for i=? to ??
...
next
»ò
do while ...
...
loop
3¡¢ÔÚVBAÖвÙ×ݶÔÏó£¬ÏÈÀí½â²Ù×ÝEXCEL¹¤×÷±íºÍÊý¾Ý¿â¶ÔÏó£º
½«ÖµÐ´ÈëEXCELµ¥Ôª¸ñ£¬È磺thisworkbook.worksheets("sheet1").cells(1,2)=1234444
´ÓEXCELµ¥Ôª¸ñÈ¡µÃÊýÖµ£¬È磺x=thisworkbook.worksheets("sheet1").cells(1,2)
Êý¾Ý¿â²Ù×÷£º
cn.open ...£¨½¨Á¢Êý¾ÝÁ¬½Ó¶ÔÏó£©
rs.open ... £¨½¨Á¢Êý¾Ý¼¯¶ÔÏó£©
x=rs("...") £¨¶ÁÈ¡ÊýÖµ£©
rs.close £¨¹Ø±Õrs£©
cn.close £¨¹Ø±Õcn£©
cn.execute £¨Ö´ÐÐsqlÓï¾ä£©
...
ËÄ¡¢Àý×Ó
sub test() '¶¨Òå¹ý³ÌÃû³Æ
Dim i As Integer, j As Integer, sht As Worksheet 'i,jΪÕûÊý±äÁ¿£»sht Ϊexcel¹¤×÷±í¶ÔÏó±äÁ¿£¬Ö¸Ïòijһ¹¤×÷±í
Dim cn As New ADODB.Connection '¶¨ÒåÊý¾ÝÁ´½Ó¶ÔÏó £¬±£´æÁ¬½ÓÊý¾Ý¿âÐÅÏ¢£»ÇëÏÈÌí¼ÓADOÒýÓÃ
Dim rs As New ADODB.Recordset '¶¨Òå¼Ç¼¼¯¶ÔÏ󣬱£´æÊý¾Ý±í
Dim strCn As String ,strSQL as String '×Ö·û´®±äÁ¿
strCn = "Provider=sqloledb;Server=·þÎñÆ÷Ãû³Æ»òI
Ïà¹ØÎĵµ£º
ËÄ£ºORACLEµÄÓÅ»¯Æ÷
ÓÅ»¯Æ÷ÓÐʱҲ±»³ÆÎª²éѯÓÅ»¯Æ÷£¬ÕâÊÇÒòΪ²éѯÊÇÓ°ÏìÊý¾Ý¿âÐÔÄÜ×îÖ÷ÒªµÄ²¿·Ö£¬²»ÒªÒÔΪֻÓÐSELECTÓï¾äÊDzéѯ¡£Êµ¼ÊÉÏ£¬´øÓÐÈκÎWHEREÌõ¼þµÄDML(INSERT¡¢UPDATE¡¢DELETE)Óï¾äÖж¼°üº¬²éѯҪÇó£¬ÔÚºóÃæµÄÎÄÕÂÖУ¬µ±Ëµµ½²éѯʱ£¬²»Ò»¶¨Ö»ÊÇÖ¸SELECTÓï¾ä£¬Ò²ÓпÉÄÜÖ¸DMLÓï¾äÖеIJéѯ²¿·Ö¡£ÓÅ»¯Æ÷ÊÇËùÓйØÏµ ......
¡¡¡¡±¾ÎÄʾÀýÔ´´úÂë»òËØ²ÄÏÂÔØ
¡¡¡¡±¾½ÚµÄÄÚÈÝ£º
¡¡¡¡ÈçºÎÔÚInfoPathÖÐʹÓÃÊý¾ÝÁ¬½ÓÀ´´ÓSQL ServerÊý¾Ý¿âÖлñÈ¡Êý¾Ý
¡¡¡¡ÈçºÎͨ¹ý´úÂëÀ´ÐÞ¸ÄÊý¾ÝÁ¬½ÓÖеÄSQL²éѯ
¡¡¡¡ÔÚ¿ªÊ¼Éè¼ÆInfoPath±íµ¥Ö®Ç°£¬ÏÈ×¼±¸Ò»¸öÊý¾Ý¿â£¬InfoPathÖ§³ÖÁ½ÖÖÊý¾Ý¿âÁ¬½Ó£º
¡¡¡¡Microsoft Office AccessÊý¾Ý¿â£¨.mdbÎļþ»ò.accdbÎļþ£©
¡¡¡ ......
--Èç¹û´æÔÚÊý¾Ý¿âprogrammerPay ¾Íɾ³ý
if exists (select * from sysdatabases where name='programmerPay')
drop database programmerPay
go
--´´½¨Êý¾Ý¿âprogrammerPay
create database programmerPay
on primary
(
name ='programmerPay_data',
filename='D:\programmerPay\programmerPay_data.mdf',
......
bit£º0»ò1µÄÕûÐÍÊý×Ö
int£º´Ó-2^31(-2,147,483,648)µ½2^31(2,147,483,647)µÄÕûÐÍÊý×Ö
smallint£º´Ó-2^15(-32,768)µ½2^15(32,767)µÄÕûÐÍÊý×Ö
tinyint£º´Ó0µ½255µÄÕûÐÍÊý×Ö
decimal£º´Ó-10^38µ½10^38-1µÄ¶¨¾«¶ÈÓëÓÐЧλÊýµÄÊý×Ö
numeric£ºdecimalµÄͬÒå´Ê
money£º´Ó-2^63(-922,337,203,685,477.5808)µ½2^ ......