注册 登录
编程论坛 VFP论坛

新手求助:创建新表,新增字段,用数组元素的值为其命名,搞不定……

heibaochen 发布于 2023-05-10 00:10, 136 次点击

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

上面是管理器页面界面。
点浏览班级按钮后,打开文件定位窗口,选择班级名单的文本文件(文本文件中第一行为班级名称,第二行开始一行一个学生姓名)。
只有本站会员才能查看附件,请 登录

读取文本文件内容后,显示到编辑框内。
只有本站会员才能查看附件,请 登录

确认无误后点添加名单按钮写入数据表。
添加名单按钮的代码搞不定了,下面是按钮代码。
程序代码:

cstr=thisform.pageframe1.page3.edit1.Value
rs=ALINES(namelist,cstr,CHR(13)+CHR(10))

IF !FILE("classes.dbf",1)
    CREATE TABLE classes (&namelist(1) c(8))
ELSE
    ALTER TABLE classes ADD COLUMN &namelist(1) c(8) NOT NULL
ENDIF     

USE classes IN 1
GO TOP

FOR i=2 TO rs
    IF  EMPTY(namelist(i))
        LOOP
    ELSE
        REPLACE &namelist(1) WITH namelist(i)
    ENDIF
ENDFOR   


现在的问题提示在 CREATE TABLE classes (&namelist(1) c(8)) 这句上,提示语法错误
只有本站会员才能查看附件,请 登录

如果文件不存在,就创建一个数据表,然后将这个名单加进去,创建表时将第一个数据元素做为新字段的名字,可卡这里了,搞不动了……
6 回复
#2
sdta2023-05-10 00:55
自由表字段名不能以数字开头,把21改为_21

[此贴子已经被作者于2023-5-10 00:59编辑过]

#3
heibaochen2023-05-10 21:27
回复 2楼 sdta
多谢帮助,按您的办法,将班级名称改为_21后,不提示语法错误了,但却提示这个
只有本站会员才能查看附件,请 登录

不知道是否宏替换的问题?
#4
sdta2023-05-10 21:31
21计算机班
改为
_21计算机

或者
计算机21

原因应该是字段名超出10个字符造成的
自由表字段名的长度不能超过10个字符

[此贴子已经被作者于2023-5-10 21:34编辑过]

#5
heibaochen2023-05-12 11:22
回复 4楼 sdta
问题解决了,多谢版主。
还要请教一个问题,先说下环境。
只有本站会员才能查看附件,请 登录

点名器页面

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

管理器页面

我的问题是:管理器中的班级列表中的项目有增减变化时,怎么同步到点名器页面中的下拉列表中,即时同步更新?
我试过,在list控件中增加项目时,在combo1控件中也同时增加项目,但下拉列表却不能显示出来。

[此贴子已经被作者于2023-5-12 11:25编辑过]

#6
sdta2023-05-12 11:40
一言难尽啊
#7
heibaochen2023-05-12 12:30
回复 6楼 sdta
问题已搞定,再次感谢版主的指导!
1