VB 用random方式读取dat文件,并在窗体上显示 ,显示内容不全

标准模块TyperecordnameAsString*10unitAsString*15ageAsIntegersalaryAsSingleEndType窗体模块Dima... 标准模块
Type record
name As String * 10
unit As String * 15
age As Integer
salary As Single
End Type
窗体模块
Dim a As record(声明中)
Private Sub Form_Click()
Open "f:\abc.dat" For Random As #1 Len = Len(a)
a.name = InputBox("姓名")
a.unit = InputBox("职位")
a.age = InputBox("年龄")
a.salary = InputBox("工资")
Put #1, , a
Get #1, 1, a
Print a.name, a.unit, a.age, a.salary
End Sub
在窗体上显示的信息没有a.salary
展开
 我来答
yfcp
2014-10-29 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
采纳数:1748 获赞数:5545
有多年网站建设相关工作经验。熟悉ASP、ASP.net、VB、JavaScript、HTML等语言和CSS、Ajax等相关技术。

向TA提问 私信TA
展开全部

你好,你的代码我测试了一下,没有太大的问题。

不显示a.salary,可能是你在弹出的工资框里面没有输入。

a.age = Val(InputBox("年龄"))

a.salary = Val(InputBox("工资"))

上面2行加个 VAL(),把输入的转为数字

Private Sub Form_Click()
    'On Error Resume Next
    Open "f:\abc.dat" For Random As #1 Len = Len(a)
    a.name = InputBox("姓名")
    a.unit = InputBox("职位")
    a.age = Val(InputBox("年龄"))
    a.salary = Val(InputBox("工资"))
        Put #1, , a
        Get #1, 1, a
        Print a.name, a.unit, a.age, a.salary
End Sub
更多追问追答
追问
谢谢哈,我也试了一下,但是当窗体不是最大化的时候,执行代码,就出现我的那种情况,再将窗体最大化,则没有a.salary ,如果窗体最大化,则什么问题都没有了,怎么解决?
追答

这个和窗体最大化最小化没关系的。我测试了一下,最大最小化都可以正常print。

最后加个 Close #1。关闭打开的文件。工程文件我打包了,下载试试

Private Sub Form_Click()
    'On Error Resume Next
    Open "f:\abc.dat" For Random As #1 Len = Len(a)
    a.name = InputBox("姓名")
    a.unit = InputBox("职位")
    a.age = Val(InputBox("年龄"))
    a.salary = Val(InputBox("工资"))
        Put #1, , a
        Get #1, 1, a
        Print a.name, a.unit, a.age, a.salary
        Close #1
End Sub


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式