问题1:(难度系数:初级) 
                  我用ADO访问ACCESS数据库时用AddNew方法往里添加一条纪录,但当输入不符要求的数据时,ado会引发一个异常,这时我应该在异常处理中废弃当前纪录,重新加入新的记录;可实际上,我发现什么也做不了了,任何操作(如cancleUpdate,update,move,AddNew)都返回错误或引发异常.我可以确定权限和共享都正确,怀疑是ado的缓冲机制有bug,请哪位高手指点。 
                
                  答:在操纵记录时应对各种可能出现的错误做相应的陷阱处理。根据错误号代表的含义来改正错误,如: 
                  on error goto ErrorCode 
                  rst001.AddNew 或 rst001.Update .... 
                  … 
                  exit Sub 
                  ErrorCode: 
                  Select case Err.Number 
                  Case 94 
                  Msgbox ″Null无效错误″ 
                  Case 461 
                  MsgBox ″指定的格式与数据格式不匹配″ 
                  Case ErrNumber 
                  … 
                  End Select 
                  问题2(难度系数:初级) 
                  如何打开加密的数据库(access)? 
                  答:打开加密的ACCESS采用如下命令: 
                  Set Db = WS.OpenDatabases (″MyDBFile.mdb″,False,False,″;PWD=密码″) 
                (记住前面有个分号。) 
                  问题3(难度系数:中级) 
                  如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序? 
                  答:该接发方式为 
                  MSComm1.InputMode=comInputModeBinary 
                  如发一个A0H 
                  Dim TxData(0) As Byte 
                  TxData(0)=&HA0 
                  MSComm1.Output=TxData 
                  这是接收方寄存器为8位的情况,如为16位,则: 
                  Dim TxData(1) As Byte 
                  TxData(0)=&HA0 
                  TxData(1)=&H0 
                  MSComm1.Output=TxData 
                  问题4(难度系数:中级) 
                  我有一程序,将生成一个数据文件,生成之后要将该文件以附件的方式发到指定的信箱。现在我要在程序上直接提供发送按钮,调用默认的邮件处理程序将附件发送,并附上主题和简单的内容。不知如何实现? 
                
                  答:可使用MAPISESSION、MAPIMESSAGES控件实现调用默认的支持MAPI的电子邮件如OUTLOOK EXPRESS、EXCHANGE。其中MAPISESSION实现登录、MAPIMESSAGES实现信息操作。 
                
                  MAPISession1.signon 
                  MAPIMessages1.SessionID = MAPISession1.SessionID 
                  MAPIMessages1.Compose ′创建一封新的消息 
                  MAPIMessages1.RecipAddress = ″[email protected]″ 
                  MAPIMessages1.AddressResolveUI = True 
                  MAPIMessages1.ResolveName 
                  MAPIMessages1.MsgSubject = Trim(txtSubject) 
                  MAPIMessages1.MsgNoteText = Trim(txtText) 
                  MAPIMessages1.AttachmentPathName = ″c:Detlog.txt″ ′attach file 
                location 
                  MAPIMessages1.Send′发送 
                  MAPISession1.SignOff 
                  详见vb5.0 onlinebook。(由lsh提供答案) 
                  问题5(难度系数:中级) 
                  用VB生成EXE文件后,如何在后面加上参数?这个参数怎样传给VB?(就像:notepad c:vb.txt 一样) 
                  答:对于使用 Visual Basic 开发并编译为 .exe 文件的应用程序,VB提供了一个Command 对象,该对象返回出现在命令行中应用程序名之后的任何参数。下面函数演示了如何获取参数的所有技术细节。 
                
                  Function GetCommandLine(Optional MaxArgs) 
                  ′声明变量。 
                  Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs 
                  ′检查是否提供了 MaxArgs 参数。 
                  If IsMissing(MaxArgs) Then MaxArgs = 10 
                  ′ 使数组的大小合适。 
                  ReDim ArgArray(MaxArgs) 
                  NumArgs = 0: InArg = False 
                  ′取得命令行参数。 
                  CmdLine = Command() 
                  CmdLnLen = Len(CmdLine) 
                  ′以一次一个字符的方式取出命令行参数。 
                  For I = 1 To CmdLnLen 
                  C = Mid(CmdLine, I, 1) ′检测是否为 space 或 tab。 
                  If (C <> ″ ″ And C <> vbTab) Then 
                  ′若既不是 space 键,也不是 tab 键,则检测是否为参数内含之字符。 
                  If Not InArg Then 
                  ′新的参数。检测参数是否过多。 
                  If NumArgs = MaxArgs Then Exit For 
                  NumArgs = NumArgs + 1 
                  InArg = True 
                  End If 
                  ′将字符加到当前参数中。 
                  ArgArray(NumArgs) = ArgArray(NumArgs) + C 
                  Else 
                  ′找到 space 或 tab。将 InArg 标志设置成 False。 
                  InArg = False 
                  End If 
                  Next I 
                  ReDim Preserve ArgArray(NumArgs) ′调整数组大小使其刚好符合参数个数。 
                  GetCommandLine = ArgArray() ′将数组返回。 
                  End Function 
                  问题6:(难度系数:高级) 
                  我现在编了一个屏幕保护程序,但不能拦截″ctrl+alt+del″的操作,不知如何处理? 
                  答:需要调用API函数″SystemParametersInfo″拦截″ctrl+alt+del″,″ctrl+esc″,″alt+tab″三组热键。将以下代码加入你的一般模块: 
                
                  Option Explicit 
                  Public Declare Function SystemParametersInfo Lib ″user32″ Alias 
                ″SystemParametersInfoA″ _ 
                  (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam 
                As Any, ByValfuWinIni As Long) As Long 
                  Public Const SPL_SCREENSAVERRUNNING = 97 
                  以下加入你的窗体 
                  Option Explicit 
                  ′读取窗体时使热键失效 
                  Private Sub Form_Load() 
                  SystemParametersInfo SPL_SCREENSAVERRUNNING, True, ByVal 1&, 
                0 
                  End Sub 
                  ′程序退出时使热键有效 
                  Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As 
                Integer) 
                  SystemParametersInfo SPL_SCREENSAVERRUNNING, False, ByVal 1&, 
                0 
                  End Sub 
                  切记:一定要一起使用,否则使热键失效后,只有重新启动Windows热键才会恢复。(由HBG提供解答)