Foxtable(狐表)用户栏目专家坐堂 → 用access作为外部数据源没有提示,用SQL作为外部数据源,有截图提示,为什么?


  共有15850人关注过本帖树形打印复制链接

主题:用access作为外部数据源没有提示,用SQL作为外部数据源,有截图提示,为什么?

帅哥哟,离线,有人找我吗?
lihe60
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6875 积分:43524 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/12/22 8:53:00 [只看该作者]

Dim a,s As String
For Each c As Winform.Control In e.Form.Controls
    If  e.Form.Controls("" & c.name & "").text=""
        a="no"
    End If
Next
If e.form.controls("日期").text = ""
    messagebox.show("日期 不能为空,否则无法关闭")
Else
    Dim dr As Row=vars("父表t").rows.AddNew() '父表增加一行
    dr("单据类型")=vars("单据类型")
    dr("日期")=vars("日期")
    If month(dr("日期"))<10
        s=year(vars("日期")) & "0" & month(vars("日期"))
    Else
        s=year(vars("日期")) & month(vars("日期"))
    End If
    dr("年月")=s
    Dim s1 As Double = vars("父表t").Compute("max(单据序号)", "年月='" & s & "'")
    If s1=0
        dr("单据序号")=s & "001"
    Else
        dr("单据序号")=s1+1
    End If
    dr("年月")=s
    vars("关联表").Rows.AddNew() '关联表增加一行
    e.Form.close()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6875 积分:43524 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/12/22 8:54:00 [只看该作者]

Dim dr As Row=vars("父表t").rows.AddNew() '父表增加一行
运行到这里就停止运行了

 回到顶部
帅哥,在线噢!
狐狸爸爸
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/22 8:55:00 [只看该作者]

从你的代码没有看到给单据编号列设置内容的代码,而错误提示的就是这个。

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7253 积分:40736 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/12/22 9:00:00 [只看该作者]

是不是您的关联列是单据编号?如果是,那么检查一下您的子表单据号列是不是设置了必须输入内容?代码输入仅仅是在父行找到了一个空值。

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6875 积分:43524 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/12/22 9:15:00 [只看该作者]

e.DataRow("单据编号")=e.DataRow("单据类型") & e.DataRow("单据序号")

 用SQL


图片点击可在新窗口打开查看此主题相关图片如下:未命名.gif
图片点击可在新窗口打开查看

用ACCESS

图片点击可在新窗口打开查看此主题相关图片如下:未命名1.gif
图片点击可在新窗口打开查看

最后一行是运行结果,只是数据源不同,其他一切都一样的。

[此贴子已经被作者于2010-12-22 9:16:33编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/22 9:26:00 [只看该作者]

不要纠结于数据源,你11楼的代码,并没有设置单据编号的内容。

我也看不懂这样的代码:

 

vars("关联表").Rows.AddNew() '关联表增加一行

[此贴子已经被作者于2010-12-22 9:29:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6875 积分:43524 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/12/22 9:29:00 [只看该作者]

单据类型是空的,是怎么回事

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6875 积分:43524 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/12/22 9:33:00 [只看该作者]

 Dim dr As Row=vars("父表t").rows.AddNew() '父表增加一行

注:用SQL运行至此就结束
    dr("单据类型")=vars("单据类型")
    dr("日期")=vars("日期")

注:用ACCESS可以运行至此


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6875 积分:43524 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/12/22 9:34:00 [只看该作者]

以下是引用狐狸爸爸在2010-12-22 9:26:00的发言:

不要纠结于数据源,你11楼的代码,并没有设置单据编号的内容。

我也看不懂这样的代码:

 

vars("关联表").Rows.AddNew() '关联表增加一行

[此贴子已经被作者于2010-12-22 9:29:17编辑过]

是父表所有信息输完后,在关联表增加一行的意思

[此贴子已经被作者于2010-12-22 9:34:35编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/22 9:34:00 [只看该作者]

以下是引用lihe60在2010-12-22 9:29:00的发言:
单据类型是空的,是怎么回事

 

你应该学会一些基本的调试技巧,也应该明白代码不会凭空无效。

 

既然单据类型列为空,而你给单据类型列赋值的代码为:

 

dr("单据类型")=vars("单据类型")

 

那么说明Vars("单据类型")为空,为了验证,可以在前面插入一行:

 

MessageBox.Show(vars("单据类型"))

dr("单据类型")=vars("单据类型")

 

如果确定了vars("单据类型")为空,就去找该变量为空的原因,也就是找出给该变量赋值的代码,看看怎么回事。

 

代码是环环相扣的,一切都是有因果的,此处不结果,就应该去找上一处的因。

[此贴子已经被作者于2010-12-22 9:36:46编辑过]

 回到顶部
总数 38 上一页 1 2 3 4 下一页