已有23人关注
问题求教
发表在VB答疑区 2009-05-16
是否精华
版块置顶:
尊敬的客服:
      您好,我是一名在校大学生读者,前不久刚买了一本贵公司编著的Visual Basic项目开发实例。由于我还没有参加工作,只有一定的VB基础,所以对书中的一些程序有一些不懂之处,特此向贵公司工作多年的师傅请教,请您们解答。
      第一部分问题(企业HR管理系统)
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

这是书本的221面的 2.声明API函数ShellExecute,这段声明不太懂,恳求赐教。由于学院课本没有过多介绍,所以请最好能把API函数的用法详细解答一下。

2.Private Sub picOK_Click()
   Static intMytimes As Integer
Dim rs1 As New ADODB.Recordset,rs2 As New ADODB.Recordset
rs1.Open”权限信息表”,Cnn,adOpenKeyset,adLockOptimistic
If rs1.RecordCount>0  Then 
If txtUserName.txt=”” Then
MsgBox”请输入用户名!”,”提示窗口”
txtUserName.SetFocus
Exit Sub
End if
   这是本书第222面的 一段代码
(1)在ASP访问数据库中adOpenKeyset 的意思是:读写,当前记录指针可以前后移动。请问在这段代码中的意思以在ASP中的意思是否相同。
(2) 在ASP访问数据库中adLockOptimistic的意思是:乐观锁定;只将修改的结果集中的记录写回数据库时才锁定该记录。请问在这段代码中的意思以在ASP中的意思是否相同。
  (3)Dim rs1 As New ADODB.Recordset,rs2 As New ADODB.Recordset
   此句用了 Dim 对象名 As New类名(参数)。这是VB.NET中的语法。请问书中是否有其他部分也用了VB.NET的语法格式。
   
3.If txtPassword = rs2.Fields("密码") Then
         czy = txtUserName
         Load frmMain
         frmMain.Show
这是本书中222面的部分代码,在这段代码中有一句:txtPassword = rs2.Fields。根据=号的意义,是把=号右边的参数赋值给左边的变量,那么这里的语句为什么不是rs2.Fields =txtPassword (txtPassword是用户实际输入给Text的值)


       第二部分(生产管理系统)
1. rivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
2. Private Declare Function ReleaseCapture Lib "user32" () As Long
这二段代码不懂,请详细赐教。

3. Dim m As Integer
    For i = 1 To Index
        Command1(i).Top = Command1(i - 1).Top + Command1.Item(i - 1).Height
    Next i
    ListView1.Top = Command1(i - 1).Top + Command1.Item(i - 1).Height
    If Index < 6 Then Command1(Index + 1).Top = ListView1.Top + ListView1.Height
    For i = Index + 2 To Command1.Count - 1
        Command1(i).Top = Command1.Item(i - 1).Top + Command1.Item(i - 1).Height
    Next i
CommandBox为什么会有Item属性?这段代码不懂。(这是本书066而代码部分,不懂,请赐教)

4. Private Sub ListView1_Click()
    If ListView1.ListItems.Count > 0 Then
        '查询操作员信息
        rs.Open "select * from tb_user where user_Name ='" + ListView1.SelectedItem + "'", cnn, adOpenKeyset
        If rs.RecordCount > 0 Then
            '给相应的控件赋值
            Lbl_Czyid.Caption = rs.Fields("user_id")
            Lbl_Name.Caption = rs.Fields("user_Name")
            MyIcon = Val(Right(rs.Fields("user_tx"), Val(Len(rs.Fields("user_tx")) - 2)))
            Set Img_Tx.Picture = Imt_Tx.ListImages(MyIcon).Picture
        End If
        rs.Close
    End If
End Sub
这是本书069面代码,其中MyIcon = Val(Right(rs.Fields("user_tx"), Val(Len(rs.Fields("user_tx")) - 2)))
            Set Img_Tx.Picture = Imt_Tx.ListImages(MyIcon).Picture
这二句不太懂,请赐教。


     我是一个初学者,虽然二级VB考试笔试成绩近80分仍还有许多地方要学习,所以特此来信希望能得到解答。
     祝贵公司事业一帆风顺,公司职员工作顺利。
     至此
敬礼
分享到:
精彩评论 1
Lemon
学分:0 LV1
2009-05-18
沙发
您好!

1.API函数的使用与VB的内置函数基本相同。ShellExecute函数的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。与VB中的Shell函数类似,在功能上比Shell函数的功能要强大些。

2.您说的ASP中的关于数据访问中的代码使用的是VB脚本。因此关于数据库方面的代码与ASP中的类似,或者说 基本相同。

3.Dim rs1 As New ADODB.Recordset,rs2 As New ADODB.Recordset
  上述代码使用的是VB6.0的代码,此段代码用于声明ADO对象变量。本书是针对VB6.0用户出版的图书,没用使用.net语言。

4.If txtPassword = rs2.Fields("密码") Then
  上述代码 不是赋值语句,是一个判断语句,判断输入的密码是否与数据库中的密码相同。当然也可以写成下面的形式。实现的功能是完全等效的。
If  rs2.Fields("密码") =txtPassword Then

5.生产管理系统中的两段代码,同样是API函数声明,没有什么可以解释的,这两个函数的声明形式固定,如果需要使用这两个函数,在任何的工程中都可以这样声明。
其中:
   SendMessage 函数 用于将指定的消息发送到一个或多个窗口。
   ReleaseCapture 函数 用于从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。
   这两个函数联合使用 应该是实现拖动无标题栏窗体移动这一功能。

6.“CommandBox为什么会有Item属性?” 您这里说的“CommandBox” 正确的写法应该是CommandButton,控制按钮。
   这里面的Command1是一个数组,数组是使用同一个名称来标示一组同类控件的,使用序号来标识具体某一个数组控件,Item(i)则用来标示具体的控件数组。

7.  ①  MyIcon = Val(Right(rs.Fields("user_tx"), Val(Len(rs.Fields("user_tx")) - 2)))
    ②  Set Img_Tx.Picture = Imt_Tx.ListImages(MyIcon).Picture
    代码①将数据库中头像的编号获取出来,并赋给变量 MyIcon
    代码②根据获取出来的头像编号,设置图片信息。这里数据库中的头像编号与ImageList控件的图片序号相同,因此可使用同一标号标示。

    

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照