设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5053|回复: 2
打印 上一主题 下一主题

VBA获取文件的值出现:无法记录所做的更改,因为您输入的值违反了

[复制链接]
跳转到指定楼层
1#
发表于 2016-5-25 13:59:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
VBA获取文件的值出现:法记录所做的更改,因为您输入的值违反了为此表或列定义的设置(例如,您所输入的值小于最小值或大于最大值)。请更正错误并重试
获取外部文件的数据,貌似第一天还有用,第二天用的时候就报这个错,查了资料但是还是无从下手,哪位大神帮忙看下,啥子情况
========================
Private Sub Command248_Click()
    Dim i As Integer
    Dim filepath As String
    Dim ssql As String
    Dim ssql1 As String
    Dim Rs As New ADODB.Recordset
    Dim j As Integer
    Dim path As String
    Dim sl As Integer
    Dim cf As Integer
    Dim gx As Integer
    Dim DLG As FileDialog, vFile
    sl = 0
    cf = 0
    gx = 0
    Set DLG = Application.FileDialog(msoFileDialogOpen)
    With DLG
        .AllowMultiSelect = False
        .ButtonName = "选择"
        .InitialFileName = CurrentProject.path
'        .Filters.Add "Graphics Files", "*.csv;", 1
        .Filters.Add "Graphics Files", "*.csv", 1
    End With
    If DLG.Show = -1 Then
    path = DLG.SelectedItems(1)
        filepath = path
        ConvertCSVToXls path
        path = Replace(path, ".csv", ".xlsx")
mz = GetSheetName1(path, 1)
Set cnn = CreateObject("adodb.connection")
Set Rs = CreateObject("adodb.Recordset")
cnn.Open "provider=microsoft.ace.oledb.12.0;extended properties=excel 12.0;data source=" & path
sql = "select * from [" & mz & "]"
Rs.Open sql, cnn, 1, 1
           cf = Rs.RecordCount
sql1 = "delete from  后台销售记录详情 "
opensql (sql1)
        For j = 1 To Rs.RecordCount
        ddid = False
        khww = False
        bbgl = False
        hx = False
        If IsNull(Rs("商家编码").Value) = False Then khww = True
'Rs("商家编码").Value这里报错如题错误,本来应该取到那个单元格值是:"5001+5006*2"
        If IsNull(DLookup("订单ID", "后台销售记录", "订单ID ='" & Rs!订单编号.Value & "'")) = False Then ddid = True
        If ddid = True And khww = True Then
        Dim spbm As String
        spbm = Rs!商家编码.Value
        Call xzbbmx(Rs!订单编号.Value, Rs!商家编码.Value, Rs!购买数量.Value)
End If
            Rs.MoveNext
       Next
Rs.Close
cnn.Close
Set Rs = Nothing
Set cnn = Nothing
   MsgBox ("智能匹配完成")
  If Dir(path) <> "" Then
DeleteFiles path
End If
    End If
     Me![销售记录查询1].Requery
End Sub
===========================
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-5-25 14:47:47 | 只看该作者
贴源文件吧。里面有好几个自定义函数都不知道有没有问题。
3#
 楼主| 发表于 2016-5-25 16:42:45 | 只看该作者
roych 发表于 2016-5-25 14:47
贴源文件吧。里面有好几个自定义函数都不知道有没有问题。

基本上我已经找出问题所在了,但是不知道怎么处理,您下载下那个数据文件,你会发现商家编码那一列,其实有两种格式,一种是带“+”的字符串数据类型,还有一种是单独的数字的 是数字数据类型,如果我的数据文件里面那一列只有带“+”的那种数据,那么就不会报错,如果单独是数字,也不会报错

文件我已经上传,操作流程是,点击按钮进入,源代码,然后选中CVS文件,会自动进行转换成EXCEL,然后读取EXCEL的数据,我已经把跟这个错误无关的代码,又涉及到其他程序的代码删除了


跪求大神 看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 19:16 , Processed in 0.090031 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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