翰文个人计算机学习网
  • 翰文快讯
  • 翰文PC快讯
  • 综合软件区
  • 操作系统
  • 注册表解析
  • Windows系列
  • Unix/Linux
  • 其他系统
  • 应用软件
  • 微软MS Office
  • WPS Office
  • 多媒体软件
  • 图像处理
  • Photoshop
  • Painter
  • Illustrator
  • CorelDRAW
  • 三维空间
  • AutoCAD
  • 3DMAX
  • 3DMAYA
  • 硬件资源
  • 攒机指南
  • 硬件超频
  • 维修指南
  • 网络资源
  • 在线通讯
  • 网上冲浪
  • 浏览器中心
  • 网络故障解析
  • 病毒资料
  • 病毒通报
  • 病毒防治
  • 病毒常识
  • 黑客技巧
  • SQL/MySQL
  • Oracle
  • Delphi
  • 编程资源
  •  C/C#/C++/VC++/VC.NET
  •  Basic/VB/VB.NET/VBScript
  •  FoxBasic/FoxPro/VF/VF.NET
  •  Java/JavaScript
  • PowerBuilder
  • 热门词:
  • 翰文计算机学习网首页
  • >
  • FoxBasic/FoxPro/VF/VF.NET
  • >
  • 应用问答
  • 应用问答

  • 资源来源:
  • HW-PCS.ORG
  • 资源作者:
  • 翰文计算机学习网
  • 人气指数:
  • [4842]
  • 关键词:输入问题

      问:我用VB5编写了一个数据录入程序,使用Access数据库。当我使用DBGrid控件时,希望对某一 列数据的修改不存入数据库中,而其他的列允许修改存入,但我发现DBGrid中DATACHANGE属性只 支持整行的操作,不支持单独的列,有办法解决吗?
      答:DBGrid有一个事件BeforeColUpdate,其语法如下:
      Private Sub object_BeforeColUpdate ([ index As Integer,] colindex As Integer, oldvalue As Variant, cancel As Integer)
      其中colindex是列号,如果cancel为False就允许更新数据库,如果为True就不允许更新数据库。

      问:我需要对Access的FORM的一个输入框进行值的判断,如果该值大于30,就出现一个警告 信息,并把光标定在此框中,不移到下一个框。但无论我怎么做,光标还是会移到下一 个框中,该框的事件触发程序如下:
      Private Sub EDP_LostFocus()
      If Me![edp] 30 Then
       MsgBox "值不能大于30,请重新!"
       Me![edp].SetFocus
      End If
      End Sub
      不知道为何实现不了我的愿望?这是否是Access的Bug?
      答:确实存在你所说的问题,这同Access的工作方式有关,它在用户移动光标时总是先保存 数据,而在LostFocus中无法组织它进行保存工作。如果你想避免错误的数据存入数据库,应该在 BeforeUpdate中进行控制。

      问:我自己建立了一个mdb数据库,其中有aa,bb,cc三个表:aa中有name(text,50,可变长度)、 age(integer)字段,name为主索引,单向增大,唯一值;bb中有name(text,50,可变)、 unit(text,50,可变长度)、id(long)字段,name为主索引、增大、唯一,id为索引、增大、唯 一;cc表中有id(long)、money(integer)字段,id为主索引、增大、唯一。现在我有如下:
      1. select * from aa inner join bb on aa.name=bb.name 或者select * from bb inner join cc on bb.id=cc.id都可以创建一个可updateable的recordset,但select * from aa inner join (bb inner join cc on bb.id=cc.id) on aa.name=bb.name却只能创建一个不能更新的 recordset,不能创建一个可更新的recordset,这是为何?
      2. 如何利用insert into, update, delete对多表进行同时操作?
      答:如果多表的recordset是可更新的,那么至少要满足两个条件:一个是join的关系必须是“一 对多”的,另一个条件是在“一”这方面必须有唯一(或主)索引。你可以用这两个条件来判断 是否可以更新。Update等在进行多表操作时也要满足这两个基本条件。

      问:我打算学习Visual FoxPro,请您推荐几个有关学习Visual FoxPro和数据库方面知识的网 点, 最好是中文的。您认为数据库理论方面的知识对于学习VFP重要吗?他们之间的关系是怎样 的?
      答:Visual FoxPro的网点并不是很多,这当然是因为它的用户数目比较少。Visual FoxPro的官 方网点是msdn.microsoft.com/vfoxpro,上面有不少关于FoxPro第三方软件的链接。在中文网点 方面,我推荐两个:思达工作室(http://www.zg169.net/~addie98,GB码)和Visual FoxPro User Club (http://vfp.gtic.com.tw/scripts/vfp_user_club/logon.idc?vip_id2=200273password2=120 5, BIG5码)。Neil’s FoxPro Resources (http://adams.patriot.net/~johnson/neil/fox.html)是我所见过的最好的FoxPro个人网点,它 完全可以同Delphi的DSP和VB的VBNet相媲美。此外,Colin’s FoxPro Site (http://www.state.sd.us/people/colink/foxpage.htm)、Virtual FoxPro User Group (http://www.vfug.org/)、Inside Visual FoxPro (http://www.cobb.com/vfp/)、Visual FoxPro Yellow Pages (http://www.universalthread.com/)都是相当不错的网点。
      数据库理论对于学习Visual FoxPro当然重要,但这里也有个理论和实际结合的。我反对 空谈理论,学习理论不是什么热门学什么,而应根据需要。对于VFP的初学者,学习一些关系数据 库的基本理论是十分必要的,许多人设计数据库时根本不考虑数据冗余、关系的完整性这些最基 本的,这对于有一定规模的数据库来说十分危险。

    感谢您对翰文计算机学习网的支持

  • 关于我们
  • 联系方式
  • 成功案例
  • 技术报价
  • RSS索引
  • 网站地图
  • 翰文电脑学习网
  • MSN:LNDDYGYC9@HOTMAIL.COM Powered by 翰文个人计算机学习网 版权所有,未经允许不得转载
    ICP备案号码:[沪ICP备12020678号] Copyright 2008-2020 HW-PCS.ORG, All Rights Reserved.