⑴ VB遠程連接sqlSERVER資料庫,下載「班級號」在Combo1里顯示,「班級號」數量未定,如何顯示呢
sql = "SELECT 班級號 from 表名"
rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
combo1..AddItem rs.Fields("班級號")
rs.MoveNext
Loop
⑵ Vb如何連接遠程的sql server最好有實例代碼,謝謝
Private Sub Command1_Click()
' Dim excel_app As excel.Application
' Dim excel_sheet As excel.Sheets
Dim excel_app As Object
Dim excel_sheet As Object
Dim rs As ADODB.Recordset
Dim strsql As String
Dim pubconn As ADODB.Connection
Dim exfieldA As String
Dim exfieldB As String
Dim exfieldC As String
Dim exfieldD As String
'打開資料庫
Set rs = New ADODB.Recordset
Set pubconn = New ADODB.Connection
pubconn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=aaa;Data Source=(local)"
pubconn.Open
Set excel_app = CreateObject("excel.application") 'excel對象
Set excel_app = New Excel.Application
' excel_app.Visible = True
excel_app.Workbooks.Open FileName:="D:\astroboy\河南生稅務支持系統\實現\字典\111.xls"
' excel_app.Worksheets(Combo1.ListIndex + 1).Activate
If Val(excel_app.Application.Version) >= 8 Then '檢查excel文件的版本
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If
'''創建sql表格
Dim crtstrsql As String
Dim exceltst As String
exceltst = Text1.Text
exfieldA = Trim$(excel_sheet.Cells(1, 1))
exfieldB = Trim$(excel_sheet.Cells(1, 2))
exfieldC = Trim$(excel_sheet.Cells(1, 3))
exfieldD = Trim$(excel_sheet.Cells(1, 4))
crtstrsql = ""
crtstrsql = crtstrsql & "create table " & exceltst & "(" & vbCrLf
crtstrsql = crtstrsql & exfieldA & " char(50) null," & vbCrLf
crtstrsql = crtstrsql & exfieldB & " char(6) null," & vbCrLf
crtstrsql = crtstrsql & exfieldC & " datetime null," & vbCrLf
crtstrsql = crtstrsql & exfieldD & " datetime null)"
pubconn.Execute crtstrsql
Dim new_value1 As String
Dim new_value2 As String
Dim new_value3 As String
Row = 2
Do
new_value = Trim$(excel_sheet.Cells(Row, 1)) '讀取excel工作者第一列數據
new_value1 = Trim$(excel_sheet.Cells(Row, 2))
If excel_sheet.Cells(Row, 3) = "" Then
new_value2 = ""
Else
new_value2 = CDate(excel_sheet.Cells(Row, 3) & "1月")
End If
If excel_sheet.Cells(Row, 4) = "" Then
new_value3 = ""
Else
new_value3 = CDate(excel_sheet.Cells(Row, 4) & "1月")
End If
If Len(new_value) = 0 And Len(new_value1) = 0 Then Exit Do
'將這一值插入SQL資料庫
strsql = "insert into " & exceltst & "(" & exfieldA & "," & exfieldB & "," & exfieldC & "," & exfieldD & ") values('" & new_value & "','" & new_value1 & "','" & new_value2 & "','" & new_value3 & "')"
pubconn.Execute strsql
Row = Row + 1 '讀取下一行數據
Loop
MsgBox "傳輸數據完成!", vbOKOnly, "完成!"
pubconn.Close
excel_app.Quit
Set rs = Nothing
Set pubconn = Nothing
Set excel_app = Nothing
Set excel_sheet = Nothing
End Sub
或參考以下
EXCEL文件要設置固定格式,還要設置命名范圍,然後才可以導入
大致思路如下:
'// 設置打開 EXCEL 文件的連接字元串
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=excel文件名;Extended Properties=Excel 8.0"
'// 以記錄集的形式打開 Excel 文件,adoConn 為 ADODB.Connection 對象
adoConn.Open strConn
'// 將數據插入到指定的表中(以ODBC的方式打開SQL資料庫)
strSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=伺服器IP;Database=資料庫;UID=用戶名;PWD=密碼].SQL中的表名 SELECT EXCEL中的欄位 FROM EXCEL工作表名"
'// 執行導入語句
adoConn.Execute strSQL, , adExecuteNoRecords
⑶ VB 遠程訪問SQL SERVER資料庫
對於跨網段連接資料庫,用VB來實現的確是差強人意。
我曾經試用幾個方法。
1.只要SQL資料庫是獨立IP的,通過ADO是可以遠程連接的,不過當數據量比較大時,這方法就不怎麼如意了。。
2.將程序打包成CAB,做成BS結構的。通過ADO的遠程組件RDS進行連接。詳細的自己網路吧。不過這個對一般人來說有點難度。
3.可以在伺服器做一個服務端,通過WINSOCK組件,傳送字串,也能實現此功能。
⑷ VB 如何連接SQLSERVER
Public myconn As New ADODB.Connection
Public myrecord As New ADODB.Recordset
Public Sub main()
gdatabasepassword = 資料庫密碼
gdatabaseusrname = 資料庫用戶名
gdatabasename = 表名
gipstr = 伺服器IP地址
connstring = "Provider=SQLOLEDB.1;Password=" & gdatabasepassword & ";Persist Security Info=True;User ID=" & gdatabaseusrname & ";Initial Catalog=" & gdatabasename & ";Data Source=" & gipstr
Set myconn = New ADODB.Connection
myconn.ConnectionString = connstring
myconn.Open
至此資料庫就連接上了,可以訪問指定的數據表了
窗體文件里這樣寫
Private Sub Form_Load()
Dim mysql As String
'On Error GoTo errortrap2
connstring = "Provider=SQLOLEDB.1;Password=" & gdatabasepassword & ";Persist Security Info=True;User ID=" & gdatabaseusrname & ";Initial Catalog=" & gdatabasename & ";Data Source=" & gipstr
'Debug.Print connstring
Set myconn = New ADODB.Connection
mysql = "select data , BedCode,CODE,PatientName,UpdateTime from MachineData "
'mysql = "select identitycard,sex from patient where name='" & List1.Text & "'"
myconn.ConnectionString = connstring
myconn.Open
Set myrecord = New ADODB.Recordset
'myrecord.Open "patient", myconn, adOpenDynamic, adLockReadOnly
myrecord.Open mysql, myconn, adOpenDynamic, adLockReadOnly
With myrecord
While Not .EOF()
List1.AddItem .Fields("CODE") & "--" & .Fields("BedCode") & "--" & .Fields("PatientName")
List2.AddItem .Fields("DATA")
List3.AddItem .Fields("UpdateTime")
.MoveNext
Wend
End With
GoTo normalend2:
errortrap2: MsgBox "嚴重錯誤!!!"
End
normalend2:
myrecord.Close
'''''''''''''''''''''''''''''''''
End Sub
⑸ 如何VB遠程連接sql server2000,求詳細過程
Dim Con As ADODB.Connection
Set Con = New ADODB.Connection
Con.ConnectionString = "driver={sql server};server=;uid=;pwd=;Database="
Con.ConnectionTimeout = 15
Con.Open
server是伺服器地址,可以是IP也可以是域名,uid是SQL用戶名,pwd是SQL登錄密碼,database是資料庫名,
ConnectionTimeout這個是響應時間
⑹ 如何跨區域解決VB.NET連接SQL2008伺服器!
1、區域網的其他電腦是可以連接你的電腦上的sql2008的,就是用的你的電腦在區域網的主機名或IP地址(如192.168.0.101),其他跟你電腦的連接方式是沒有任何差別的。
2、花生殼可以把你電腦的外網IP地址與一個固定的域名(可以是自己注冊的域名,也可以是花生殼免費分配的二級或三級域名)進行綁定,然後其他地方的電腦通過這個域名就可以訪問你電腦上的sql2008了。當然,你所在區域網連接外網的路由器應該把你電腦的內網IP地址以及埠號開放許可權,這樣路由器就會把外網的訪問請求轉發到你的電腦上了。
3、最好的解決辦法,就是在網上購買一個sql伺服器(比如阿里雲、網路雲、騰訊雲這些「雲們」提供的雲數據伺服器),這樣全世界的任何電腦都可以連接你的資料庫(當然必須知道登錄信息才行)。這些業界大佬提供的伺服器不管主機性能還是網路帶寬以及服務的穩定性,都遠遠超過你用個人電腦架設的伺服器。而且這樣還能實現程序與數據的分離,簡化程序的開發難度。你所說的用友、航天開票等幾乎所有大范圍使用的軟體,基本上都是這樣實現的。此外,還可以做成網頁應用程序,這樣就連軟體都不需要了,直接用瀏覽器打開指定網頁就能使用,這才是現在最流行的方式。
⑺ VB怎麼連接SQL Server資料庫
VB連接資料庫方式主要有兩種,一是通過ODBC介面,ODBC是windows系統里提供的介面,專門連接資料庫的,可以連接多種資料庫,在應用電腦的設置ODBC,也就DSN數據源(下面說到的),連接到伺服器。
第二種就是ADO方式,
VB使用ADO資料庫可以分為有源資料庫和無源資料庫,即是否使用了DSN數據源,如下例:
1、在連接資料庫前首先要在VB菜單中「工程」-「引用」從中選擇 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.6兩個組件,這是在連接數據前所必做的工作。
2、接下來定義ADO的連接對象,如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
第一種方法採用的是無源的資料庫連接方法
conn.ConnectionString = "Driver={sql server};server=JSZX3-11;uid=sa;pwd=;database=wzc"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名,密碼 from login where 用戶名='" & Trim(Combo1.Text) & "' And 密碼='" & Trim(Text1.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("請重新登錄", vbExclamation)
Text1.Text = ""
Text1.SetFocus
Else
Form1.Hide
End If
rs.Close
這是第二種方法連接資料庫的方法,這一種方法是採用有源的方法與資料庫連接的方法,代碼如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DSN=login;uid=sa;pwd=;"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名 from login", conn, adOpenStatic, adLockReadOnly, adCmdText
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1
i = Trim(rs.Fields("用戶名").Value)
rs.MoveNext
Combo1.AddItem i
Next t
rs.Close
連接資料庫的方法很多很多,只要各位去勇敢的償試一下,就可以感覺資料庫的方法並不是很難,本人以前也很想做這方法的工作,只是學識不深,未能完成胸中大志,如今對這些方法的多少有一些了解,特意為那些初學者以供學習之用。
VB使用ADO資料庫可以分為有源資料庫和無源資料庫,即是否使用了DSN數據源,如下例:
1、在連接資料庫前首先要在VB菜單中「工程」-「引用」從中選擇 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.6兩個組件,這是在連接數據前所必做的工作。
2、接下來定義ADO的連接對象,如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
第一種方法採用的是無源的資料庫連接方法
conn.ConnectionString = "Driver={sql server};server=JSZX3-11;uid=sa;pwd=;database=wzc"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名,密碼 from login where 用戶名='" & Trim(Combo1.Text) & "' And 密碼='" & Trim(Text1.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("請重新登錄", vbExclamation)
Text1.Text = ""
Text1.SetFocus
Else
Form1.Hide
End If
rs.Close
這是第二種方法連接資料庫的方法,這一種方法是採用有源的方法與資料庫連接的方法,代碼如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DSN=login;uid=sa;pwd=;"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名 from login", conn, adOpenStatic, adLockReadOnly, adCmdText
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1
i = Trim(rs.Fields("用戶名").Value)
rs.MoveNext
Combo1.AddItem i
Next t
rs.Close
連接資料庫的方法很多很多,只要各位去勇敢的償試一下,就可以感覺資料庫的方法並不是很難,本人以前也很想做這方法的工作,只是學識不深,未能完成胸中大志,如今對這些方法的多少有一些了解,特意為那些初學者以供學習之用。