| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > VB教程 > 文章正文 用户登录
提供免费100GB的数
益网数据免费提供
从暴风数据看视频
《数据中国》网站
FLASH调用XML数据
使用report build
flash动态读取xml
Flash MX 2004 数
数据结构队列的实
MC和对象数据类型

通用数据链接文件 (*.UDL) 的创建           

通用数据链接文件 (*.UDL) 的创建

作者:佚名 来源:csdn 作者: playyuer 更新:2006-8-25 21:05:35 错误报告 我要投稿
引用 Microsoft OLE DB Service Component 1.0 Type Library
Option Explicit
Private Sub Command1_Click()
Dim x As New MSDASC.DataLinks
x.hWnd = Me.hWnd
Dim s As String
On Error GoTo ErrorHandler
s = x.PromptNew
On Error GoTo 0
If VBA.Len(VBA.Trim(s & "")) > 0 Then
Dim CommonDialog1 As New MSComDlg.CommonDialog
CommonDialog1.DefaultExt = ".udl"
CommonDialog1.Filter = "通用数据链接文件 (*.UDL)|*.udl"
CommonDialog1.DialogTitle = "保存为通用数据链接文件"
CommonDialog1.Flags = cdlOFNOverwritePrompt
CommonDialog1.CancelError = True
On Error GoTo ErrorHandler
CommonDialog1.ShowSave
On Error GoTo 0
s = "[oledb]" & vbCrLf _
& "; Everything after this line is an OLE DB initstring" & vbCrLf _
& s & vbCrLf
Dim BytesBuffer() As Byte
BytesBuffer = VBA.StrConv(VBA.StrConv(s, vbUnicode), vbFromUnicode)
Dim i As Long
ReDim BytesBuffer0(1) As Byte
BytesBuffer0(0) = 255 '&HFF
BytesBuffer0(1) = 254 '&HFE
If VBA.Len(VBA.Trim(VBA.Dir(CommonDialog1.FileName))) > 0 Then
VBA.Kill CommonDialog1.FileName
End If
On Error GoTo ErrorHandler
i = VBA.FreeFile
Open CommonDialog1.FileName For Binary Access Write As #i
Put #i, , BytesBuffer0
Put #i, , BytesBuffer
Close #i
On Error GoTo 0
If VBA.MsgBox("Test?", vbYesNo) = vbYes Then
Dim adoConnection As New ADODB.Connection
adoConnection.Open "File Name=" & CommonDialog1.FileName
VBA.MsgBox "OK!"
End If
End If
Exit Sub
ErrorHandler:
If Err.Number <> 91 And Err.Number <> 32755 Then
VBA.MsgBox Err.Number & ":" & vbCrLf & Err.Description
End If
End Sub
Private Sub Command2_Click()
Dim CommonDialog1 As New MSComDlg.CommonDialog
CommonDialog1.DefaultExt = ".udl"
CommonDialog1.Filter = "通用数据链接文件 (*.UDL)|*.udl"
CommonDialog1.DialogTitle = "打开通用数据链接文件"
'CommonDialog1.Flags = cdlOFNOverwritePrompt
CommonDialog1.CancelError = True
On Error GoTo ErrorHandler
CommonDialog1.ShowOpen
On Error GoTo 0
If VBA.Len(VBA.Trim(VBA.Dir(CommonDialog1.FileName))) > 0 Then
VBA.MsgBox GetConnectionStringFromUDL(CommonDialog1.FileName)
End If
Exit Sub
ErrorHandler:
If Err.Number <> 91 And Err.Number <> 32755 Then
VBA.MsgBox Err.Number & ":" & vbCrLf & Err.Description
End If
End Sub
Public Function GetConnectionStringFromUDL(UDLFileName As String) As String
If VBA.Len(VBA.Trim(VBA.Dir(UDLFileName & ""))) > 0 Then
Dim BytesBuffer() As Byte
ReDim BytesBuffer(VBA.FileLen(UDLFileName) - 133) As Byte
Dim i As Long
i = VBA.FreeFile
Open UDLFileName For Binary Access Read As #i
Get #i, 129, BytesBuffer
Close #i
GetConnectionStringFromUDL = VBA.Trim(VBA.StrConv(VBA.StrConv(BytesBuffer, vbFromUnicode), vbUnicode))
End If
End Function
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。