1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

我已知道,我想知道-----SQL+ADO 专题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-4-10 14:37 | 显示全部楼层
本帖已被收录到知识树中,索引项:ADO技术

3楼的工具差一点!

应可以做到如下的效果:

将数据库中的所有表列出一个列表框中,再可选一个张表就得到所的列,

以前我下过一个这样的有类似作用的东东的,中"国宝"后就不见了,

相信楼主也是可以做到的,那样就真的方便了

[此贴子已经被作者于2007-4-10 14:38:49编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-10 17:26 | 显示全部楼层

这是应用上的偏重。因为手头上的工作有几十个表要设计,所以派生出这个根工具。

楼上所提到应用,还没有大量接触,遇到这种情况,都手工操作。

有机会会把它完善。毕竟作一个工具自己用与作给别人用相比,要考虑的方面要少得多。

TA的精华主题

TA的得分主题

发表于 2007-4-10 19:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-4-11 13:33 | 显示全部楼层

楼主:

看看我这个找出来的并试做的东东?

Sub test()
   
    Dim cat As New ADOX.Catalog
    Dim a As Integer, b As Integer
    Dim s As String
    Dim pths$
   
    pths = "  Provider=SQLOLEDB.1;server=生产五号机;uid=sa;pwd=;database=原数"

    '建立连接
    cat.ActiveConnection = pths
    If CNN.State = 0 Then CNN.Open pths

    a = cat.Tables.Count            '取表数量
    For b = 0 To a - 1
        s = cat.Tables(b).Name      '表名称,其中MS开头的是系统的表
        If InStr(s, "sys") + InStr(s, "dtp") < 1 Then
            Debug.Print s
            strsql = "select top 1 * from " & s
            Set rs = Nothing
            rs.Open strsql, CNN, 1, 1, 1
            For i = 0 To rs.Fields.Count - 1
           
                Debug.Print rs.Fields(i).Name,
           
            Next
            Debug.Print
            Debug.Print
        End If
    Next b
   
    Set rs = Nothing
    Set cat.ActiveConnection = Nothing
   
    '需要引用:微软   ADO   Ext.2.6   for   dll   之后   Dim cat As New ADOX.Catalog这个定义才不会提示错误
   
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-11 14:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

  '需要引用:微软   ADO   Ext.2.6   for   dll   之后   Dim cat As New ADOX.Catalog这个定义才不会提示错误
这句对我来说太有用了,ado帮助中有不少 ADOX.Catalog 的示例

一直不知道引用什么。也没找到提示,谢谢楼上

TA的精华主题

TA的得分主题

发表于 2007-4-11 15:06 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-11 16:30 | 显示全部楼层

sql是一门专门的语言,让人既熟悉又陌生。

select * from 联系人 where 姓名 like '李%'

翻译成中文: 选择 全部列 从 联系人表 当 姓名 像 李%

对学过一两句英文的人并不难理解,说到陌生 有许多词汇似曾相识,但含义却不同,文化上的差异,看了帮助也云里雾里,跟何况俺的词汇量实在有限。但对英语好的人来说,理解起来要简单的多。

使用VBA却不了解SQl不能不说是一种遗憾,精通SQL?没敢指望。在需要的时候能够运用一部分已经足够了。本贴开了才几天我的一些疑问(甚至不知怎么问!) 就已得到解决。感谢sunsoncheng 希望更多人参与交流 希望看到本贴的人有收获。

TA的精华主题

TA的得分主题

发表于 2007-4-12 16:56 | 显示全部楼层

发现Jet-SQL   与  T -SQL  的又一差别:

Jet-SQL:

strsql=" select * from 表   where 日期 like #" & date & "#"

此处具作体到某一天时,like也可以用=

而在 T-SQL 首先是#号要更换为'号,同时,在上面的情况下,不能用like只能用=,否则得不到相关的结果

写法如下:

strsql=" select * from 表   where 日期 = '" & date & "'"

TA的精华主题

TA的得分主题

发表于 2007-4-17 23:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-4-23 23:28 | 显示全部楼层

create table temp(aa varchar(12),bb varchar(12),cc numeric(12,2))

在sql server上执行成功,但在acc上却执行错误?红色为出错的地方,楼主能告知双精度型怎么表示吗?

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

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

GMT+8, 2025-4-21 08:44 , Processed in 0.050864 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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