ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] ""不是个有效名称。请确认它不包含无效的字符或者标,急需解决(已解决)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-21 16:26 | 显示全部楼层 |阅读模式
本帖最后由 lms008 于 2018-6-22 11:24 编辑

   在使用ADODB查询worksheet中的数据时,发现报错:""不是个有效名称。请确认它不包含无效的字符或者标,且名称不太长。
  代码如下:
  Function checkMobileHasExist(ByVal lonMobile As Long) As Boolean
    Dim conn As Object, rsRecord As Object
    Dim strSql As String, lMobileNo As Long

    On Error GoTo errHandler
    Set conn = CreateObject("ADODB.Connection")
    Set rsRecord = CreateObject("ADODB.recordset")

    lMobileNo = lonMobile
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
    strSql = "SELECT COUNT(*) FROM [Master_list$] Where [Mobile No.]=" & lMobileNo & " AND [Serial number (ddmmyyyynnnn)] is not null "
    rsRecord.Open strSql, conn  ' adOpenKeyset, adLockOptimistic 1,3
    If rsRecord(0) > 0 Then
        checkMobileHasExist = True
    Else
        checkMobileHasExist = False
    End If

    Set rsRecord = Nothing
    Set conn = Nothing

经过检查,所用的[Master_list 是存在的,在其他的function用类似的代码查询数据是不会报错的。急需高手指点具体哪里出现问题。

下面是 import的数据:




Call Lead Assign EUC v0.1.rar

74.28 KB, 下载次数: 14

Main

Import Call List.rar

11.08 KB, 下载次数: 7

import

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-21 16:28 | 显示全部楼层
请问是否跟 Master_list这个worksheet中的数据有关系,Column name 的描述一定要放在第一行吗?
我经过测试把第六行Column name 数据copy 到Master_list_tmp 的worksheet中去查询,也是报相同错误。

TA的精华主题

TA的得分主题

发表于 2018-6-21 16:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
[Mobile No.]字段名中不能有句点!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-21 16:47 | 显示全部楼层
lsdongjh 发表于 2018-6-21 16:42
[Mobile No.]字段名中不能有句点!

好的,谢谢你的答复。我试试看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-21 17:09 | 显示全部楼层
lsdongjh 发表于 2018-6-21 16:42
[Mobile No.]字段名中不能有句点!

经过测试,去掉[Mobile No.] 字段中的“.“,会报同样的错误。

TA的精华主题

TA的得分主题

发表于 2018-6-21 17:11 | 显示全部楼层
lms008 发表于 2018-6-21 17:09
经过测试,去掉[Mobile No.] 字段中的“.“,会报同样的错误。

一是原始文件中不能有 带句点的字段名,二是SQL语句中不能有带句点的字段名!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-22 09:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lms008 于 2018-6-22 09:41 编辑
lsdongjh 发表于 2018-6-21 17:11
一是原始文件中不能有 带句点的字段名,二是SQL语句中不能有带句点的字段名!

这个问题解决了,现在是报另外的错误: -2147217904  至少一个参数没有被指定值  。是同一条SQL: strSql = "SELECT COUNT(*) FROM [Master_list$] Where [Mobile No]=" & lMobileNo & " AND [Serial number (ddmmyyyynnnn)] is Not null "想问这个[Serial number (ddmmyyyynnnn)] 字段一定要赋值吗?不可以查询非空的记录吗?这种SQL在Access中是可以正常执行的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-22 11:21 | 显示全部楼层
经过好心人的帮助下,已经解决此问题:方法如下
FROM [Master_list$]
因为你的Master_list表第一行不是标题列,所以报错,建议修改为
FROM [Master_list$A6:R12]

TA的精华主题

TA的得分主题

发表于 2020-12-10 09:52 | 显示全部楼层
lms008 发表于 2018-6-22 09:39
这个问题解决了,现在是报另外的错误: -2147217904  至少一个参数没有被指定值  。是同一条SQL: strSql  ...

请教楼主这出现这个“至少一个参数没有被指定值”,是如何解决的?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-27 03:48 , Processed in 0.043743 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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