ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] SQL 语句 问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-9-10 12:59 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
语句的目的是想记录 某一段 sql 语句 进入 ACCESS 数据库.

mystrsql = "INSERT INTO [OperateLog]([operatedate],[username],[userIP],[usercomputername],[actiontype],[SQL_S]) VALUES ('" & Now() & "','" & myusername & "','" & userIP & "','" & usercomputername & "','" & actiontype & "','" & SQL_S & "')"

?mystrsql
INSERT INTO [OperateLog]([operatedate],[username],[userIP],[usercomputername],[actiontype],[SQL_S]) VALUES ('2013/9/9 17:11:18','XSA CI / Jack Ou','','','Login','SELECT * FROM [Useraccount] WHERE (usercode = 'XSACIJO')')

但当执行下面的语句时,出错.

cnn.Execute mystrsql

请问如何处理?

我只想把 SELECT * FROM [Useraccount] WHERE (usercode = 'XSACIJO') 记录 到 数据库.

    myData = DB_path
    mytable = "OperateLog"
    cnnStr = "Provider=microsoft.jet.oledb.4.0;" _
           & "Data Source=" & myData & ";" _
           & "Jet OLEDB:Database Password=" & DB_password & ";"
    On Error Resume Next
    With cnn
        .ConnectionString = cnnStr
        .Open
    End With
    On Error GoTo 0
    If cnn.State <> adStateOpen Then
        MsgBox "Database access failed! Pls contact your administrator!!", vbCritical, "PPR"
        Exit Sub
    End If
    mystrsql = "INSERT INTO [OperateLog]([operatedate],[username],[userIP],[usercomputername],[actiontype],[SQL_S]) VALUES ('" & Now() & "','" & myusername & "','" & userIP & "','" & usercomputername & "','" & actiontype & "','" & SQL_S & "')"
    cnn.Execute mystrsql


图像1_~3.JPG

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-10 13:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我想问一下是不是不允许把SQL语句放入数据库中?但它们只是TEXT啊。。晕。

TA的精华主题

TA的得分主题

发表于 2013-9-10 14:39 | 显示全部楼层
INSERT INTO [OperateLog]([operatedate],[username],[userIP],[usercomputername],[actiontype],[SQL_S])
SELECT '2013/9/9 17:11:18','XSA CI / Jack Ou','','','Login',* FROM [Useraccount] WHERE (usercode = 'XSACIJO')

最好不要用*,就用[Useraccount]里的那个字段名

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-10 15:02 | 显示全部楼层
amazeyeli 发表于 2013-9-10 14:39
INSERT INTO [OperateLog]([operatedate],,,,[actiontype],[SQL_S])
SELECT '2013/9/9 17:11:18','XSA CI  ...

但那是变量来的,获取自之前的操作,我把一些操作的SQL记录下来,主要是想看那些人在做什么,当一个日志来看..

mystrsql = "INSERT INTO [OperateLog]([SQL_S]) VALUES ('SELECT * FROM [Useraccount]WHERE (usercode = 'test')')"

这么简单都不能过机啊...

其实我只是想记录SQL的操作

在例子里,我想把 SELECT * FROM [Useraccount]WHERE (usercode = 'test') 记录 在数据库里.

TA的精华主题

TA的得分主题

发表于 2013-9-10 15:15 | 显示全部楼层
INSERT INTO [OperateLog]([SQL_S])
SELECT 字段名 FROM [Useraccount]
WHERE (usercode = 'test')

values后面只能接值!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-9-10 15:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
amazeyeli 发表于 2013-9-10 15:15
INSERT INTO [OperateLog]([SQL_S])
SELECT 字段名 FROM
WHERE (usercode = 'test')

那意思就是说我不能把 SELECT * FROM [Useraccount]WHERE (usercode = 'test') 这个看作是一段字符,然后 insert 进 数据库吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 16:52 , Processed in 0.031955 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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