Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共15 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:关于后台数据表数据的调用和刷新问题

1楼
刘效功天津 发表于:2024/12/18 12:23:00

问题一: 从后台数据表中调用数据,一开始都没问题,但不知突然就开始弹出找不到数据表的报错窗口,数据就不能调用了,请老师看看下面的代码,看看问题究竟出在哪里, (老师我在写刷新数据代码时用了一下防止闪屏的代码,后来删除了这个代码,不知和这个锁屏闪屏代码有没有关系)


问题一: 从后台数据表中调用数据,一开始都没问题,但不知突然就开始弹出找不到数据表的报错窗口,数据就不能调用了,请老师看看下面的代码,看看问题究竟出在哪里, (老师我在写刷新数据代码时用了一下防止闪屏的代码,后来删除了这个代码,不知和这个锁屏闪屏代码有没有关系)

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:后台数据表的调用及更新问题.zip

2楼
有点蓝 发表于:2024/12/18 14:01:00
应该是表格没有加载,或者被卸载了
3楼
刘效功天津 发表于:2024/12/18 14:32:00
老师好,那表格加载和表加载有区别吗,加载了表,不就加载了表格,这二者有啥区别
4楼
有点蓝 发表于:2024/12/18 14:38:00
加载表包括了加载表结构和加载表数据。平时说的加载一般指加载表数据。

如果到BeforeLoadOuterTable设置了e.cancel=true就会不加载表结构,这个表就不会存在。如果使用unload卸载了也不会存在
5楼
刘效功天津 发表于:2024/12/18 16:17:00

专家老师好,我使用的是后台数据库方法  sqlfind   怎么总是说内部表不存在,是啥问题,老师您给看看下面的代码和问题描述,看问题出在哪儿  另外问题二, 刷新数据按钮的代码编译也没问题,就是没动作,是啥问题,谢谢老师


工程造价汇总表窗口是正在操作的主表  表结构如下: 

工程造价汇总表

序号

项目内容辅助列

项目内容

单位

工程量

理论单价

理论合价

投标单价

投标合价

备注

1

全隐框玻璃幕墙单价分析表

全隐框玻璃幕墙

100

653.43

65343

653.43

87920

 

2

全隐框玻璃幕墙单价分析表

全明框玻璃幕墙

200

243.5453

48709.06

1548.6362

309727.2

 

 

该列是为了和后台数据表名称一一对应而设置的辅助列

 

 

 

该列数据需要从后台调用及更新

 

该列数据需要从后台调用及更新

 

 

 

后台数据表: "全隐框玻璃幕墙单价分析表"   "全明框玻璃幕墙单价分析表"  这些后台数据表的结构都相同,结构如下:

全隐框玻璃幕墙单价分析表  (全明框玻璃幕墙单价分析表)

工程名称

计量单位:1平方米

序号

项目构成

单位

理论用量

理论单价

合价                     (理论综合单价)

投标用量

投标单价

报价调整3                 (投标综合单价)

备注

直接费

总计

 

 

 

 

 

 

++

材料费

合计

 

 

 

 

 

 

 

1

玻璃

平米

1.2

135

162

2.52

135

340.2

6mm+12A+6mm中空钢化LOW-e玻璃

2

铝型材

公斤

6

24

144

6

24

144

氟碳喷涂

3

埋板

0.5

28

14

0.5

28

14

300*200*8表面热镀锌处理

人工费

合计

 

 

 

 

 

 

 

1

制作费

平米

1

75

75

1

75

75

 

2

安装费

平米

1

65

65

1

65

65

 

机械费

合计

 

 

 

 

 

 

 

1

大型机械设备

平米

1

 

5.98

1

 

8.77

 I *1.5%

2

小型机具设备

平米

1

 

3.98

1

 

5.85

 I *1%

间接费

合计

 

 

 

 

 

 

 

1

现场经费

平米

1

 

5.53

1

 

7.45

 (一 )*1%

2

设备折旧费

平米

1

 

6.64

1

 

8.93

 (一 )*1.2%

利润

合计

 

 

33.93

 

 

45.66

 (一 +二)*6%

税金

合计

 

 

53.95

 

 

72.59

 (一 ++三)*9%

平米单价

 

 

653.43

 

 

879.2

  (+++)

 

 

 

 

 

653                                     是需要调用的数据

 

 

653                             是需要调用的数据

 

 

 

要实现的目的: 1 就是在窗口的目录树中,点击节点标签:能够自动从后台相应数据表(全隐框玻璃幕墙单价分析表,全明框玻璃幕墙单价分析表)中提取出对应的综合单价数据(例如653  653),填充到工程造价汇总表对应的单元格中

2当后台不同的数据表的数据发生变化后,在窗口中点击  数据刷新  按钮后,能够根据后台数据表中的数据自动更正工程造价汇总表中对应的数据

“”

 

 

问题一: 从后台数据表中调用数据,一开始都没问题,但不知突然就开始弹出找不到数据表的报错窗口,数据就不能调用了,请老师看看下面的代码,看看问题究竟出在哪里, (老师我在写刷新数据代码时用了一下防止闪屏的代码,后来删除了这个代码,不知和这个锁屏闪屏代码有没有关系)

Select Case e.Node.Text

'一 调用玻璃幕墙单价分析表代码

    Case "全隐框玻璃幕墙单价分析表“

        Dim dr1 As DataRow = DataTables("全隐框玻璃幕墙单价分析表").SQLFin   d("项目构成 = '平米单价'")

        If dr1 IsNot Nothing Then

            Dim r1 As Integer

            r1 = Tables("工程造价汇总表").FindRow("[项目内容]='全隐框玻璃幕墙'")

            If r1 >= 0 Then '如果找到的话

                Tables("工程造价汇总表").Position = r1

                If Tables("工程造价汇总表").Rows( r1)("工程量") > 0 Then

                    Tables("工程造价汇总表").Rows( r1)("单位") = dr1("单位")

                    Tables("工程造价汇总表").Rows( r1)("理论综合单价") = dr1("合价")

                    Tables("工程造价汇总表").Rows( r1)("投标综合单价") = dr1("报价调整3")

                Else

                    MessageBox.Show("请先填写工程量,否则无法进行数据加载,填写工程量后,请重新加载数据,第一次双击鼠标是定位,再此双击鼠标是加载数据,切记")

                End If

            End If

                                   End If

       

    Case "全明框玻璃幕墙单价分析表“

        Dim dr2 As DataRow = DataTables("全明框玻璃幕墙单价分析表").SQLFin   d("项目构成 = '平米单价'")

        If dr2 IsNot Nothing Then

            Dim r2 As Integer

            r2 = Tables("工程造价汇总表").FindRow("[项目内容]='全明框玻璃幕墙'")

            If r2 >= 0 Then '如果找到的话

                Tables("工程造价汇总表").Position = r2

                           If Tables("工程造价汇总表").Rows( r2)("工程量") > 0 Then

                    Tables("工程造价汇总表").Rows( r2)("单位") = dr2("单位")

                    Tables("工程造价汇总表").Rows( r2)("理论综合单价") = dr2("合价")

                    Tables("工程造价汇总表").Rows( r2)("投标综合单价") = dr2("报价调整3")

                Else

                    MessageBox.Show("请先填写工程量,否则无法进行数据加载,填写工程量后,请重新加载数据, 第一次双击鼠标是定位,再此双击鼠标是加载数据,切记")

                End If

            End If

        End If

End  select

        End If

 老师好 :上面代码是在窗口中设置了一个目录树,写在双击节点事件中的代码, 都是通过对后台数据表: "全隐框玻璃幕墙单价分析表“,"全明框玻璃幕墙单价分析表“ 进行调用数据,这些表在项目事件内部表加载事件中设置启动时不加载,一开始时点击目录树节点能正常调用数据,是没问题的,都能正常执行,后来就不知道咋地回事,一调用数据就提示,找不到数据表,也不知是怎么回事,请老师给看看问题出在哪儿, 谢谢老师

 

 

问题二: 在窗口的  刷新数据  按钮中写入如下代码,编译也没问题,点击后  和问题一相同  还说找不到数据表,,我又把数据表加载进来,不报错了,但是数据不能刷新,请老师检查一下代码,看问题出在哪里  谢谢老师,

 

'按钮自动更新数据代码

'''刷新已经加载的数据代码

Dim bms() As String = {"全隐框玻璃幕墙单价分析表", "全明框玻璃幕墙单价分析表"}'最后整体拷贝修改

For Each bm As String In bms

    Dim dr As DataRow

    If DataTables.Contains(bm) Then

        '定义已加载的数据库跨表更新数据代码

        dr = DataTables(bm).Find( "[项目构成] ='平米单价'")

    Else

         '定义后台数据库跨表更新数据代码

dr = DataTables(bm).SQLFin   d("[项目构成] ='平米单价'")

    End If

    '定义后台数据库跨表更新数据代码 

    Dim cmd As New SQLCommand

    cmd.CommandText = "UP    DATE  {工程造价汇总表}  SET  理论综合单价= ? , 投标综合单价= ?   WHERE  项目内容辅助列 = ? "

    cmd.Parameters.clear

    cmd.Parameters.Add("@理论综合单价", dr("合价"))

    cmd.Parameters.Add("@投标综合单价", dr("报价调整3"))

    cmd.Parameters.Add("@项目内容辅助列", DataTables(bm).name)

    cmd.ExecuteNonQuery

Next


6楼
有点蓝 发表于:2024/12/18 16:59:00
请上传实例测试
7楼
刘效功天津 发表于:2024/12/18 17:11:00
老师,您好,实例结构太大,传不过,怎么给您发过去

8楼
刘效功天津 发表于:2024/12/18 17:13:00
您给我个邮箱,我给您传过去,还是咋整

9楼
有点蓝 发表于:2024/12/18 17:17:00
新建一个项目,使用access数据库,导入需要的表,每个保留千几百行测试数据,重现同样的问题,把这个新项目和数据库打包发上来即可
10楼
刘效功天津 发表于:2024/12/18 17:20:00
还有个问题,咱们用SQLload方法能从后台发生变化的数据来跨表更新对应的已经加载的数据,我想用这个方法,但是我看咱们得帮助,我还是没看懂,后面老师结合我提的这个问题,在工程造价汇总表  窗口中的数据更新  按钮命令中,咱们用SQLload写一段代码,实现跨表,通过后台数据表的变化数据来更新当前表的对应数据   谢谢老师

共15 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04102 s, 3 queries.