注册 登录
编程论坛 VFP论坛

自己做了一个表单,程序运行到最后显示“不能访问选定表”,在论坛上发现相似问题,不能解决。因此求教,谢谢大家

雨花石568 发布于 2021-12-05 11:59, 1728 次点击
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

DO CASE
    CASE
        =MESSAGEBOX("请先选择年级",48,"提示")
        
    CASE
        USE aa.dbf
        APPEND BLANK
        replace nj WITH
        USE
ENDCASE
运行完后显示“不能访问选定表。njdm.nj”
求教大咖,加入什么代码可以完美解决

[此贴子已经被作者于2021-12-5 12:02编辑过]

9 回复
#2
sdta2021-12-05 12:03
上传相关文件看看
#3
雨花石5682021-12-05 12:06
只有本站会员才能查看附件,请 登录


这是压缩包
#4
吹水佬2021-12-05 12:29
可能是USE aa.dbf 时关闭了之前打开的工作区表njdm
#5
雨花石5682021-12-05 12:42
那怎么修改代码呢?
#6
xuminxz2021-12-05 12:45
CASE &&这时,当前表切换到了njdm
*        USE aa.dbf   &&在njdm表所在工作区打开了aa,同时关闭了njdm,改成
        use aa.dbf  in 0
        select aa

        APPEND BLANK
        replace nj WITH
        USE
        select njdm

[此贴子已经被作者于2021-12-5 12:46编辑过]

#7
雨花石5682021-12-05 12:50
回复 6楼 xuminxz
感谢
解决问题了


您看我的注解对吗?
CASE &&这时,当前表切换到了njdm
*        USE aa.dbf   &&在njdm表所在工作区打开了aa,同时关闭了njdm,改成
        use aa.dbf  in 0   &&在最低可用工作区,打开表aa
        select aa    &&指定激活包含表aa的工作区
        APPEND BLANK
        replace nj WITH
        USE
        select njdm   &&&&指定激活包含表njdm的工作区

[此贴子已经被作者于2021-12-5 13:18编辑过]

#8
schtg2021-12-05 12:53
回复 3楼 雨花石568
请试一试,是这样的吗?
只有本站会员才能查看附件,请 登录
#9
雨花石5682021-12-05 12:59
回复 8楼 schtg
就是酱紫。
但是我看不懂这么深奥的代码......
能解释一下最后三行代码吗?
DO CASE
    CASE
        =MESSAGEBOX("请先选择年级",48,"提示")
        
    CASE
         cstr =       ?
        INSERT INTO aa(Nj) values(ALLTRIM(cstr))  ?
ENDCASE
#10
吹水佬2021-12-05 15:06
只有本站会员才能查看附件,请 登录

cb1 =
IF cb1.listindex==0
    MESSAGEBOX("请先选择年级",48,"提示")
    cb1.setfocus
    RETURN
ENDIF
INSERT INTO aa VALUES (cb1.list(cb1.listindex))


[此贴子已经被作者于2021-12-5 15:08编辑过]

1