lisonshaw 发表于 2008-9-1 09:09

找不到别名‘口令表’

我在连编后遇上了个问题,我有一个登陆表单,一个注册表单,直接运行登陆表单时没问题,但当先运行注册表单再运行登陆表单(输入用户名和口令点"登陆")时就出现错误“找不到别名‘口令表’”(我设计的注册成功后直接自动运行登陆表单)是怎么回事呀?

[[it] 本帖最后由 lisonshaw 于 2008-9-1 09:13 编辑 [/it]]

ibmlang_002 发表于 2008-9-1 11:23

使用调试工具看看什么原因

qjbzjp 发表于 2008-9-1 11:51

检查“口令表”是否已打开,会不会在运行注册时表单时被关闭了?

lisonshaw 发表于 2008-9-2 13:08

口令表是数据表呀,好象没有关闭呀.(调试工具不怎么会用)

qjbzjp 发表于 2008-9-2 14:32

把你的代码传上来看看。

txfantong 发表于 2008-9-2 14:37

运行睦挂断看下是在哪句出现问题

lisonshaw 发表于 2008-9-2 16:44

要哪段代码?是注册表单还是登陆表单,我想登陆表单应该没问题,因为直接运行登陆表单并没有问题,而是运行了注册表单后才出现该问题的

lisonshaw 发表于 2008-9-2 16:45

注册代码如下:
SET EXACT ON
SELECT 口令表
LOCATE for thisform.text1.Value=用户名
IF EMPTY(thisform.text1.Value) or EMPTY(thisform.text2.Value)
        MESSAGEBOX("用户名或口令不能为空!",16)
        thisform.inputok  &&新建方法程序,实现重新输入效果
ELSE
        IF !EOF()
                MESSAGEBOX("对不起,该用户名已经存在,请重新输入!",16)
                thisform.inputok       
        ELSE
                IF ALLTRIM(thisform.text2.value)=ALLTRIM(thisform.text3.Value )
                INSERT into 口令表(用户名,口令) values (thisform.text1.Value,thisform.text2.Value)
                        IF MESSAGEBOX("恭喜!您已经注册成功,是否现在登陆?",52)=6
                                do form 登陆.scx
                        ENDIF
                        thisform.Release
                ELSE
                        MESSAGEBOX("两次输入口令不一致!请检查输入!",48)
                        thisform.text1.Value=""
                        thisform.text2.Value=""
                        thisform.text3.Value=""
                        thisform.text1.SetFocus
                ENDIF
        ENDIF
ENDIF

txfantong 发表于 2008-9-2 16:57

运行登陆表单时,注册表单还未释放
会不会问题出在这里

qjbzjp 发表于 2008-9-3 08:48

从代码上没有关键性问题,请检查一下“登录.scx”的load等代码中,是否在“口令表”打开的工作区中又打开了新的数据表,这样就会自动关闭“口令表”。
    为省事起见,也可以在“登录.scx”的load代码中加入:
if !used("口令表")
   MESSAGEBOX("如果见到本信息,“口令表”还没有打开,现在打开。")  &&测试用
   use 口令表  &&也可以在其它合适的工作区中打开
endif

ibmlang_002 发表于 2008-9-3 12:24

文件已关闭。请在登录表单中判断“口令表”是否已打开。如未打开,则打开。在打开新的表时,请在后面加上 in 0。

[[it] 本帖最后由 ibmlang_002 于 2008-9-4 09:38 编辑 [/it]]

午丁 发表于 2008-9-4 17:39

USE 表名.dbf IN 0 ALIAS 别名

每次打开表的时候建议使用工作区
USE 表名.dbf IN 0 ALIAS 别名

页: [1]

编程论坛