ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 951|回复: 6

[求助] 网站搜索引擎用不了求教SQL问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-23 13:29 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习SQL有个问题是如何用VBA引用SQL表格数据啊是要用ADO吗?比如SQL库做个user表格存储用户名密码 用窗体做登录界面
论坛太多都是存储到ECXEL表格里的 想找个例子是存储到SQL里的例子但是搜索引擎好像用不了 求教了



TA的精华主题

TA的得分主题

发表于 2018-8-23 13:35 | 显示全部楼层
存储到不同的数据库用的连接字符是不一样的。

比如用accdb做数据库

cn.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\FilesData.accdb"

TA的精华主题

TA的得分主题

发表于 2018-8-23 15:20 | 显示全部楼层
'联网举例
Str_coon = "Provider=SQLOLEDB;Data Source=DAa-3-2;Initial Catalog=book;Uid=sa;PWD=abc;Persist Security Info=false"
StrSQL = "SELECT max(受理编号) as 最后编号 FROM [受理编号表]"

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-23 23:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
魂断蓝桥 发表于 2018-8-23 13:35
存储到不同的数据库用的连接字符是不一样的。

比如用accdb做数据库

感谢老师 我可能表述的问题不清楚吧 比如一个表格里有帐号跟密码 如果不是存储在excel里 而是在SQL表格里例如下列例子
  1. Private Sub CommandButton1_Click()                      '按下登录按钮
  2. With Label3
  3.     If ComboBox1.Value = "" Or TextBox1.Text = "" Then  '判断用户名是否空白
  4.         .Visible = True
  5.         .Caption = "用户名或密码不能为空"
  6.         TextBox1.SetFocus
  7.     Else
  8.         On Error Resume Next
  9.         If Sheet4.Range("A2:A" & r).Find(ComboBox1.Value, LookIn:=xlValues) Is Nothing Then    '查找用户是否存在
  10.             rs = MsgBox("用户名不存在,现在立即注册吗?", 1 + 48, "系统提示")
  11.             Select Case rs
  12.                 Case vbOK
  13.                     Unload UserForm1
  14.                     UserForm2.Show      '显示注册窗口
  15.                 Case vbCancel
  16.                     Cancel = False
  17.             End Select
  18.         Else
  19.             If TextBox1.Text = Application.WorksheetFunction.VLookup(ComboBox1.Value, Sheet4.Range("A2:B" & r), 2, 0) Then
  20.                 nm = ComboBox1.Value: pw = TextBox1.Text           '记录用户名和密码
  21.                 Application.Visible = True      '密码正确,显示主窗口
  22.                 Unload Me
  23.                 UserForm3.Show 0
  24.             Else
  25.                 .Visible = True                 '密码错误
  26.                 .Caption = "密码错误,请重新输入!"
  27.                 With TextBox1
  28.                     .SelStart = 0
  29.                     .SelLength = Len(.Text)
  30.                     .SetFocus
  31.                 End With
  32.                 If c >= 3 Then MsgBox "密码错误次数超过三次,程序关闭", 0 + 32, "系统提示": Unload Me: ThisWorkbook.Close savechanges:=False
  33.                 c = c + 1
  34.             End If
  35.         End If
  36.     End If
  37. End With
  38. End Sub
复制代码

我想用sql库的表格取代Sheet4.Range("A2:A" & r)这样 sql库有id字段user跟PWS字段 取代 不知道可不可以 搜索用不了 所以我想看关于这类的

TA的精华主题

TA的得分主题

发表于 2018-8-24 08:51 | 显示全部楼层
给你个例子,自己导入进去就好了

Desktop.rar (25.65 KB, 下载次数: 6)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-24 10:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
huang1314wei 发表于 2018-8-24 08:51
给你个例子,自己导入进去就好了

感谢版主这个是我需要的 希望论坛搜索引擎早点弄好

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-24 10:17 | 显示全部楼层
zopey 发表于 2018-8-23 15:20
'联网举例
Str_coon = "Provider=SQLOLEDB;Data Source=DAa-3-2;Initial Catalog=book;Uid=sa;PWD=abc;Per ...

感谢你的回复 这个ADO我知道 我用的是自定义函数
  1. Public Function Sql_Connet(ByVal strServerName As String, ByVal strDatabaseName As String, ByVal strUid As String, ByVal strPwd As String) As Boolean
  2. On Error GoTo Err_Set
  3. Set cn = CreateObject("ADODB.Connection")
  4. Set rs = CreateObject("ADODB.recordset")
  5. cn = "Driver={SQL Server};Server=" & strServerName & ";Database=" & strDatabaseName & ";Uid=" & strUid & ";Pwd=" & strPwd
  6. cn.ConnectionTimeout = 5
  7. cn.Open
  8. Exit Function
  9. Err_Set:
  10. [h5] = Err.Number
  11. [h6] = Err.Description
  12. MsgBox Err.Description
  13. Err.Clear
  14. End Function
复制代码

连接的时候用的是
  1. Sub 连接SQL()
  2. With Sheet5
  3. Call Sql_Connet(.[F1], .[F4], .[F2], .[F3])
  4. End With
  5. '[B1] =服务器名称;[B4] =数据库名称,[B2] =sa ; [B3] = 以sa身份登录数据库的密码If cn <> "" Then
  6. MsgBox "数据库连接成功", vbInformation, "SQL"
  7. cn.Close
  8. Exit Sub
  9. End If
  10. aa: MsgBox "数据库连接失败", vbInformation, "SQL"
  11. cn.Close
  12. Set rs = Nothing
  13. Set cn = Nothing
  14. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 18:40 , Processed in 0.022334 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表