1.我现在的进销存是在一台电脑上录入,其他电脑采用数据库共享直接访问的,其他电脑在访问时的速度极慢,我不知道该如何是好?我记得有人说过通过其他方式访问可以快点,我采用ADO的形式。如果有其他好建议不妨也说来听听!
2、下列两个代码有什么区别?
在VBA中我引用了MSHFLEXGRID控件,我是想通过设置一个文本框,然后在MSHFLEXGRID中进行编辑,在设置文本框rkdtxt_KeyPress时,后面的申明在VBA (ByVal KeyAscii As MSForms.ReturnInteger),而在VB中是(KeyAscii As Integer)同样的代码在VB是可以通过的,而在VBA中竟上述一个地方不同,竟然代码就无法通过?请问大家该如何办?
VBA中文本框(rkdtxt),该代码在VBA中没通过。
Private Sub rkdtxt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = ASC_ENTER Then
MSHFlexGrid1.SetFocus
KeyAscii = 0
End If
End Sub
VB中文本框(rkdtxt),该代码在VB中通过。
Private Sub rkdtxt_KeyPress(KeyAscii As Integer)
If KeyAscii = ASC_ENTER Then
MSHFlexGrid1.SetFocus
KeyAscii = 0
End If
End Sub
当然不是仅仅参数方面的问题!
谢谢!
13 个解决方案
#1
1 你用的什么数据库
2 说出错误原因
2 说出错误原因
#2
一、是ACCESS的数据库。
二、错误原因我知道还要问大家?
错误的提示是:“编译错误,过程声明与事件描述不匹配,或过程具有相同的名称”
主要我看是两个参数:在VBA中是ByVal KeyAscii As MSForms.ReturnInteger,而在VB中是KeyAscii As Integer,就是这点差别没有通过?
二、错误原因我知道还要问大家?
错误的提示是:“编译错误,过程声明与事件描述不匹配,或过程具有相同的名称”
主要我看是两个参数:在VBA中是ByVal KeyAscii As MSForms.ReturnInteger,而在VB中是KeyAscii As Integer,就是这点差别没有通过?
#3
1:建议使用sql ACCESS访问用共享的方式肯定慢
2: 不太清楚
等强人吧
2: 不太清楚
等强人吧
#4
访问速度也决定于你机器的速度,赫赫
你也没贴出是在什么样的情况下慢,登陆慢?读写大(少)量数据慢?
还是任何时候都慢?
你也没贴出是在什么样的情况下慢,登陆慢?读写大(少)量数据慢?
还是任何时候都慢?
#5
我用MSHFLEXGRID浏览记录集,在记录集中总共只有2000条记录,在每张单子(6条记录)都要用较长的时间,具体要5-6秒,不象在本地的速度,1秒中。我觉得这种方式肯定有问题!
#6
ACCESS只是桌面型数据库,C/S系统还是用SQL server数据库来做吧
#7
共享型的当然慢,是最慢的,有条件的话就换了吧。
VBA里就是这样的,你要在VBA环境里运行当然要按它的要求来做。
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub
VBA里就是这样的,你要在VBA环境里运行当然要按它的要求来做。
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub
#8
不建议通过共享访问ACCESS数据库.建议使用SQL SERVER等网络数据库.
╭═══════════════════╮
║ 免费的源码、工具网站,欢迎大家访问!║
║ http://www.j2soft.cn/ ║
╰═══════════════════╯
╭═══════════════════╮
║ 免费的源码、工具网站,欢迎大家访问!║
║ http://www.j2soft.cn/ ║
╰═══════════════════╯
#9
ADO确实比DAO慢许多,但不至于会慢这么多的,2000条记录,要5-6秒?优化你的SQL查询语句吧
我一个ACCESS数据库都50M了,在两台1999年的电脑下运行,业务非常繁忙,但不感觉速度有问题,我用的DAO
Private Sub rkdtxt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = ASC_ENTER Then
MSHFlexGrid1.SetFocus
KeyAscii = 0
End If
End Sub
按ENTER键后看能否取出KeyAscii的值
我一个ACCESS数据库都50M了,在两台1999年的电脑下运行,业务非常繁忙,但不感觉速度有问题,我用的DAO
Private Sub rkdtxt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = ASC_ENTER Then
MSHFlexGrid1.SetFocus
KeyAscii = 0
End If
End Sub
按ENTER键后看能否取出KeyAscii的值
#10
ByVal KeyAscii As MSForms.ReturnInteger
MSForms.ReturnInteger 根 integer 类型不一样就不能用
哈 这个好像没有重载 ~~~
MSForms.ReturnInteger 根 integer 类型不一样就不能用
哈 这个好像没有重载 ~~~
#11
1:快速的方法倒不是用ADO,DAO,RDO,而是先从文本文件里面预读数据,然后启动后在后台用ADO代替,不管ACCESS,SQL SERVE,都可以
2: MSForms.ReturnInteger,很简单,VB里面没有MSForms的类库,当然不能使用
2: MSForms.ReturnInteger,很简单,VB里面没有MSForms的类库,当然不能使用
#12
如果只求快,不用数据库,用txt最好!
#13
SQL SERVER 2005 要十几万一套。
#1
1 你用的什么数据库
2 说出错误原因
2 说出错误原因
#2
一、是ACCESS的数据库。
二、错误原因我知道还要问大家?
错误的提示是:“编译错误,过程声明与事件描述不匹配,或过程具有相同的名称”
主要我看是两个参数:在VBA中是ByVal KeyAscii As MSForms.ReturnInteger,而在VB中是KeyAscii As Integer,就是这点差别没有通过?
二、错误原因我知道还要问大家?
错误的提示是:“编译错误,过程声明与事件描述不匹配,或过程具有相同的名称”
主要我看是两个参数:在VBA中是ByVal KeyAscii As MSForms.ReturnInteger,而在VB中是KeyAscii As Integer,就是这点差别没有通过?
#3
1:建议使用sql ACCESS访问用共享的方式肯定慢
2: 不太清楚
等强人吧
2: 不太清楚
等强人吧
#4
访问速度也决定于你机器的速度,赫赫
你也没贴出是在什么样的情况下慢,登陆慢?读写大(少)量数据慢?
还是任何时候都慢?
你也没贴出是在什么样的情况下慢,登陆慢?读写大(少)量数据慢?
还是任何时候都慢?
#5
我用MSHFLEXGRID浏览记录集,在记录集中总共只有2000条记录,在每张单子(6条记录)都要用较长的时间,具体要5-6秒,不象在本地的速度,1秒中。我觉得这种方式肯定有问题!
#6
ACCESS只是桌面型数据库,C/S系统还是用SQL server数据库来做吧
#7
共享型的当然慢,是最慢的,有条件的话就换了吧。
VBA里就是这样的,你要在VBA环境里运行当然要按它的要求来做。
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub
VBA里就是这样的,你要在VBA环境里运行当然要按它的要求来做。
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub
#8
不建议通过共享访问ACCESS数据库.建议使用SQL SERVER等网络数据库.
╭═══════════════════╮
║ 免费的源码、工具网站,欢迎大家访问!║
║ http://www.j2soft.cn/ ║
╰═══════════════════╯
╭═══════════════════╮
║ 免费的源码、工具网站,欢迎大家访问!║
║ http://www.j2soft.cn/ ║
╰═══════════════════╯
#9
ADO确实比DAO慢许多,但不至于会慢这么多的,2000条记录,要5-6秒?优化你的SQL查询语句吧
我一个ACCESS数据库都50M了,在两台1999年的电脑下运行,业务非常繁忙,但不感觉速度有问题,我用的DAO
Private Sub rkdtxt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = ASC_ENTER Then
MSHFlexGrid1.SetFocus
KeyAscii = 0
End If
End Sub
按ENTER键后看能否取出KeyAscii的值
我一个ACCESS数据库都50M了,在两台1999年的电脑下运行,业务非常繁忙,但不感觉速度有问题,我用的DAO
Private Sub rkdtxt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = ASC_ENTER Then
MSHFlexGrid1.SetFocus
KeyAscii = 0
End If
End Sub
按ENTER键后看能否取出KeyAscii的值
#10
ByVal KeyAscii As MSForms.ReturnInteger
MSForms.ReturnInteger 根 integer 类型不一样就不能用
哈 这个好像没有重载 ~~~
MSForms.ReturnInteger 根 integer 类型不一样就不能用
哈 这个好像没有重载 ~~~
#11
1:快速的方法倒不是用ADO,DAO,RDO,而是先从文本文件里面预读数据,然后启动后在后台用ADO代替,不管ACCESS,SQL SERVE,都可以
2: MSForms.ReturnInteger,很简单,VB里面没有MSForms的类库,当然不能使用
2: MSForms.ReturnInteger,很简单,VB里面没有MSForms的类库,当然不能使用
#12
如果只求快,不用数据库,用txt最好!
#13
SQL SERVER 2005 要十几万一套。