Foxtable(狐表)用户栏目专家坐堂 → [求助]如果数据库中没有数据的时候添加数据会出错~求解决~好像是我的代码写的不对


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

主题:[求助]如果数据库中没有数据的时候添加数据会出错~求解决~好像是我的代码写的不对

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
[求助]如果数据库中没有数据的时候添加数据会出错~求解决~好像是我的代码写的不对  发帖心情 Post By:2013/6/19 13:47:00 [显示全部帖子]

如题 用的是sqlserver外部数据库 如果之前有数据的话 是不会出错的

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

如果 里边没有数据会出错

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

增加带我我写的是
With Tables("GongWen")
    If .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改
        Tables("GongWen").AddNew()
    End If
End With

Forms("新增公文").Open()

麻烦大伙帮忙指点一下
谢谢了

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:01:00 [显示全部帖子]

是不是不用if判断?
直接用tables().addnew()
然后 就直接forms().open()就行了

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:10:00 [显示全部帖子]

这样好像不对吧?
isnot nothing 不就是不是空的么?如果 不是空的 那就不执行下边的addrow的语句了
但是我现在里边肯定是空的 是不是应该这样修改一下

With Tables("GongWen")
    If .Current  Is Nothing Then
Tables("GongWen").AddNew()
    Else
        If .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改
            Tables("GongWen").AddNew()
        End If
    End If
End With

第一个if是判断现在tables是不是空的 如果是空的 就直接加一个空行 然后 打开“增加”窗口
如果不是空的的 那判断当前行 是不是被修改了 如果没有修改 就addnew() 然后再打开“增加”窗口

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:12:00 [显示全部帖子]

不对 好像没必要判断这句话了 应为 我好像已经禁止修改行了 所以 当前行 是不可能被修改了 那么
If .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改
            Tables("GongWen").AddNew()
        End If
这句话 不就是没必要有了么?
就直接
tables().addNew()
然后
forms().open()
就可以了吧

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:24:00 [显示全部帖子]

恩 谢谢了 我自己想的话没想到 用is nothing来判断tables是不是空的 
对了 难道我们绑定数据 就必须先添加一个空行才行么?


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

像这样
我还没录入数据保存呢 就先添加一个空行 等保存完了 在显示完整数据
我知道造成 这样的结果是因为 我先做了这个
tables().addnew()事情 
但是如果 不先做addnew的话 直接forms().open()的话 会

图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看
这样 因为tables总是默认选中一行 我要是打开窗口的话 是绑定一个表的 所以 就会 类似于修改的命令 
请问 怎样在点击 “增加” 按钮的时候主窗口的tables中不添加一个新的空行 而是等我添加完成以后点击“保存”的时候一起在tables中添加完整的数据

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:35:00 [显示全部帖子]

那是不是 我就得像
e.Form.Controls("tbSearch1-1").Text这样来获取控件的值了 
然后 在用insert into来 像数据库中写入么?

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:39:00 [显示全部帖子]

恩 我先按你说的 我先试试

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:55:00 [显示全部帖子]

dim dr as datarow = datatables("XX").addnew
刚开始 就这样addnew的话 那 主窗口 tables里 不又是有一个空行了么?

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 14:58:00 [显示全部帖子]

是啊 我就是参考这里的例子的 
但是 如果这样的话 就是在给人感觉上 就是 我还没点击“保存” 按钮的 结果 他的父级窗口就有一个空行了 这样 好像不大对吧?
一般 都是 点击 增加 之后 列表中 应该是还原来的数据 此时 弹出录入的模式窗口 等我录入完成之后在点击“保存” 的时候 上移级的列表窗口 才会增加一行数据
就是 按照咱们的文档 写 是没问题的 但是 给人的使用感觉上好像 有点不对劲~

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


加好友 发短信
等级:婴狐 帖子:52 积分:364 威望:0 精华:0 注册:2013/6/5 0:08:00
  发帖心情 Post By:2013/6/19 15:02:00 [显示全部帖子]

我就是按照你说的做的啊

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

难道我理解错了?
我点击“增加”按钮的时候 forms().open() 弹出一个模式窗口
模式窗口中textbox中我没有绑定数据 然后 就是“保存”按钮 我就是按照我上边图片那么写的~

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