Office中国论坛/Access中国论坛

标题: [求助]我在用Access编程时遇到的几个问题,苦恼ing [打印本页]

作者: 兔子罗杰    时间: 2003-8-12 22:24
标题: [求助]我在用Access编程时遇到的几个问题,苦恼ing

一、为什么我的代码在XP下正常而在98下出错?([B]此问题已解决[/B])
  我最近用Access做了一个软件,我是在WinXP下做的一切正常,但拿到Win98下运行却报“编译错误:找不到工程或库”,但是我只是用了一个Trim函数,改为Replace函数就正常了。另外,还有Mid、LCase等函数也报错,我重装了Win98和Office2000也安装了VB6运行库和最新的Windows Script 5.6,问题依然存在,小弟我百思不得其解,请各位老大多多帮忙!
[此贴子已经被作者于2003-8-13 12:58:21编辑过]


作者: 兔子罗杰    时间: 2003-8-12 22:25

二、如何取得新插入的记录的自动编号字段的值?
  如何取得新插入的记录的自动编号字段的值?我记得以前在哪儿看见过,但是现在想不起来了,如果哪位老大知道烦请告诉我。

三、如何限制文本框中输入的内容的长度?
  比如我想使某个文本框最多输入10个字符该如何实现?

作者: 兔子罗杰    时间: 2003-8-12 22:32

四、为什么我的Insert和Update语句总是报错,而在另一个窗体中却正常?
  错误信息:
运行时错误 '-2147217900 (80040e14)':
INSERT INTO 语句的语法错误。

运行时错误 '-2147217900 (80040e14)':
UPDATE 语句的语法错误。
  [B]代码见第6楼[/B]
[此贴子已经被作者于2003-8-13 15:23:42编辑过]


作者: Airin    时间: 2003-8-12 22:34
我回答第三個問題:
在表->設計(選擇相應的表)->字段的長段(這是大致意思)
作者: 兔子罗杰    时间: 2003-8-12 23:31
Airin,谢谢你的回复,不过我说的是如何限制窗体中的文本框输入的内容长度。

另外,我还有两个问题比较长(附有源代码)总是发送失败是怎么回事?本来我想把五个问题发在一个帖子里的,但总是发送失败,所以才分开发的。还有我上传文件也总是不成功。
[此贴子已经被作者于2003-8-12 15:33:16编辑过]


作者: 兔子罗杰    时间: 2003-8-12 23:35

续四:
  代码如下:其中Users表存放用户帐号信息,包含UserID,UserName,PassWord,Permission四个字段,其中UserID字段为自动编号字段且设为主键,UserName和PassWord字段为字符型字段,Permission为数字型字段,存放权限代码;Me.UserName和Me.PassWord为窗体中的两个文本框,用来输入用户名和密码;PwdEncrypt为密码加密函数;UserPermission为计算出来的权限代码。

[此贴子已经被作者于2003-8-13 15:24:24编辑过]


作者: 兔子罗杰    时间: 2003-8-12 23:40

续四:
    CurrentProject.Connection.Execute "INSERT INTO Users (UserName,PassWord,Permission) VALUES ('" & Trim(Me.UserName.Value) & "','" & PwdEncrypt(Me.PassWord.Value) & "'," & UserPermission & ");"
    CurrentProject.Connection.Execute "UPDATE Users SET UserName = '" & Trim(Me.UserName.Value) & "',PassWord = '" & PwdEncrypt(Me.PassWord.Value) & "',Permission = " & UserPermission & " WHERE UserID = " & UserID & ";"



[此贴子已经被作者于2003-8-13 15:24:48编辑过]


作者: 兔子罗杰    时间: 2003-8-12 23:41

续四:
  用如下代码取得生成后的SQL语句,粘贴到查询里执行却很正常。
    InputBox "", "", "INSERT INTO Users (UserName,PassWord,Permission) VALUES ('" & Trim(Me.UserName.Value) & "','" & PwdEncrypt(Me.PassWord.Value) & "'," & UserPermission & ");"
    InputBox "", "", "UPDATE Users SET UserName = '" & Trim(Me.UserName.Value) & "',PassWord = '" & PwdEncrypt(Me.PassWord.Value) & "',Permission = " & UserPermission & " WHERE UserID = " & UserID & ";"


[此贴子已经被作者于2003-8-13 15:25:18编辑过]


作者: 兔子罗杰    时间: 2003-8-12 23:41

续四:
  用如下代码取得生成后的SQL语句,粘贴到查询里执行却很正常。
    InputBox "", "", "INSERT INTO Users (UserName,PassWord,Permission) VALUES ('" & Trim(Me.UserName.Value) & "','" & PwdEncrypt(Me.PassWord.Value) & "'," & UserPermission & ");"
    InputBox "", "", "UPDATE Users SET UserName = '" & Trim(Me.UserName.Value) & "',PassWord = '" & PwdEncrypt(Me.PassWord.Value) & "',Permission = " & UserPermission & " WHERE UserID = " & UserID & ";"


[此贴子已经被作者于2003-8-13 15:25:43编辑过]


作者: 兔子罗杰    时间: 2003-8-12 23:44
五、我在一个窗体的Resize事件中写入了一些改变控件大小及位置的代码,但在执行时出错。
  错误信息:
运行时错误 '2100':
控件或子窗体控件放置在这个位置太大了。
  事件代码:
Private Sub Form_Resize()
    'On Error Resume Next
    If Form.InsideWidth < 6915 Or Form.InsideHeight < 7350 Then
        Form.InsideWidth = 6915
        Form.InsideHeight = 7350
        Exit Sub
    End If
    Dim FormWidth, FormHeight, ButtonWidth, ButtonHeight, ButtonSpace
    FormWidth = Form.InsideWidth
    FormHeight = Form.InsideHeight
    ButtonWidth = Me.PrevArticle.Width
    ButtonHeight = Me.PrevArticle.Height
    If (Form.InsideWidth - ButtonWidth * 5) > 0 Then
        ButtonSpace = (FormWidth - ButtonWidth * 5) / 6
    Else
        ButtonSpace = 0
    End If
[此贴子已经被作者于2003-8-12 15:54:37编辑过]


作者: 兔子罗杰    时间: 2003-8-12 23:52
续五:[B](此问题已解决)[/B]
    Me.Title.Visible = False
    Me.Topic.Visible = False
    Me.Content.Visible = False
    Me.Title.Left = (FormWidth - Me.Title.Width) / 2
    Me.Topic.Width = FormWidth - 1132
    Me.Content.Width = FormWidth - 565
    Me.Content.Height = FormHeight - 2815
    Me.Line1.Width = FormWidth - 505
    Me.PrevArticle.Left = ButtonSpace
    Me.NextArticle.Left = ButtonSpace * 2 + ButtonWidth
    Me.Modify.Left = ButtonSpace * 3 + ButtonWidth * 2
    Me.[Print].Left = ButtonSpace * 4 + ButtonWidth * 3
    Me.CloseForm.Left = ButtonSpace * 5 + ButtonWidth * 4
    Me.PrevArticle.Top = FormHeight - 545
    Me.NextArticle.Top = FormHeight - 545
    Me.Modify.Top = FormHeight - 545
    Me.[Print].Top = FormHeight - 545
    Me.CloseForm.Top = FormHeight - 545
    Me.Title.Visible = True
    Me.Topic.Visible = True
    Me.Content.Visible = True
End Sub

[此贴子已经被作者于2003-8-13 16:07:55编辑过]


作者: Airin    时间: 2003-8-13 01:39
我記得有一個函數是直接指定它的長和寬的,不用這么復雜吧?好像是:movesize
作者: Airin    时间: 2003-8-13 01:42
以下是引用兔子罗杰在2003-8-12 15:31:01的发言:
Airin,谢谢你的回复,不过我说的是如何限制窗体中的文本框输入的内容长度。

另外,我还有两个问题比较长(附有源代码)总是发送失败是怎么回事?本来我想把五个问题发在一个帖子里的,但总是发送失败,所以才分开发的。还有我上传文件也总是不成功。
[此贴子已经被作者于2003-8-12 15:33:16编辑过]

你可以在代碼中判斷嘛!嘻嘻!
作者: 兔子罗杰    时间: 2003-8-13 16:04
我記得有一個函數是直接指定它的長和寬的,不用這么復雜吧?好像是:movesize
谢谢,但是怎么用,能说详细点吗?
作者: Airin    时间: 2003-8-13 16:26
在OFFICE自帶的幫助里有,自已看看吧!
作者: 兔子罗杰    时间: 2003-8-13 19:00
Airin,不是改变窗体大小,而是要使窗体中的控件随窗体大小的改变而调整大小和位置。
我的代码是窗体Resize事件的代码(窗体示意图见下贴,不好意思我不能上传图片),目的是使中间的文本框随窗体大小的改变而改变,使下部的按钮始终贴在窗体下部。

作者: 兔子罗杰    时间: 2003-8-13 19:01
窗体示意图
┏━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                  XXXXXXXXXX                    ┃
┃  ┌────────────────────┐  ┃
┃  │                                        │  ┃
┃  │                文本框                  │  ┃
┃  │                                        │  ┃
┃  └────────────────────┘  ┃
┃  ┌──┐    ┌──┐    ┌──┐    ┌──┐  ┃
┃  └──┘    └──┘    └──┘    └──┘  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┛
作者: 兔子罗杰    时间: 2003-8-13 19:08
第一个问题已经解决,因为我在工程里错误的引用了一个Win98中不存在的动态连接库(msdmo.dll),去掉对它的引用后就可以在Win98中运行了。但是另外四个问题还请各位大虾多多帮忙解决。
作者: Airin    时间: 2003-8-13 21:29
主窗體你可以在窗體細部設置,按鈕你就把它放在窗體尾部就可以了,只要靈活運用movesize是可以達到你想要的效果的。
作者: lijiawy    时间: 2003-8-13 23:42
二:在插入好一条新记录后,立即用recordset来打开这个表,并移到最后一条,就可以找出该值
作者: 兔子罗杰    时间: 2003-8-14 00:19
谢谢Airin,第五个问题已解决。我将按钮放到窗体页脚中,并从Resize事件代码中删除调整窗体高度的代码,但我还是不明白为什么按钮放在窗体主体中就会出错呢?
作者: Airin    时间: 2003-8-14 02:05
放在主體中也不會錯吧,只是因為它的大小調整是從下往上縮的而已,因此就把按鈕給“藏”起來了!嘻嘻!
作者: 兔子罗杰    时间: 2003-8-24 23:41
Airin你好!不好意思因为我们的网络坏了好几天没来了。

放在主體中也不會錯吧,只是因為它的大小調整是從下往上縮的而已,因此就把按鈕給“藏”起來了!嘻嘻!
你的意思是窗口大小调整之后才产生Resize事件,这时按钮已经超出窗体范围,所以才会报错对吗?但如果是这样,怎样才能让按钮在窗口Resize前就先往上移呢?另外,横向调整为什么不会出错?





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3