Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请问如何实现(Rs.find)?

王同  发表于:2009-02-07 18:42:03  
复制

我是菜鸟,还没入门,请大侠别笑。

下面编了一半的vb,卡住了。

Private Sub 计算IP地址_Click()
On Error GoTo Error_计算IP地址_Click
  Dim Temp As String
  Dim i As Integer
  Dim i1 As Integer '指向输入VLAN地址的最后一位
  Dim i2 As Integer '指向掩码地址的最后一位
  Dim i3 As Integer '临时变量用于计算可用IP地址
  Dim i4 As Integer '临时变量用于计算可用IP地址
  Dim i5 As Boolean
  Dim Data As ADODB.Recordset
  Set Data = New ADODB.Recordset
  i1 = Split(Me![VLAN地址], ".")(3)
  i2 = Split(Me![掩码], ".")(3)
  i3 = 256 - i2
  Temp = "Select * from IP地址信息表"
  Data.Open Temp '打开IP地址信息表
  Data.MoveFirst
  For i = 1 To Data.RecordCount
    If Data("IP地址") = Me![VLAN地址] Then         
       MsgBox "IP地址已存在!", vbOKOnly, "出错"
       Exit Sub
    End If
    i = Data.RecordCount + 1
    Data.MoveNext
  Next i

'我想表达的逻辑是:如果在VLAN地址输入的值,在IP地址信息表中找到了,那么就报错“IP地址已存在”,并且退出。但我运行该脚本时,直接跳到Error了,即提示“出错退出!”,好像该绿色部分的代码没有运行。请高手指点啊!

  Set Data = Nothing
Error_计算IP地址_Cl ick:
  MsgBox "出错退出!", vbOKOnly, "出错"
  DoCmd.Close
End Sub

 

Top
sosopain 发表于:2009-02-08 00:48:21

Ado 的使用,清参考一下access的帮助文件。

 

Dim rst As New ADODB.Recordset

rst.CursorLocation = adUseClient
rst.Open SQLstr, CurrentProject.Connection

 

 

另外,for 循环 ,循环变量会自动增加,不用加1, 更不能用i = data.recordcount +1

 

循环记录集,最好用while, 请参考access帮助里面的相关段落。有很详细完善的例子

 

如果单纯的是想找是否某个值是否在表中存在, 可以参考用dlookup 函数,详细的用法,请参考access帮助文件。

 

 

从你的这个例子来看,强烈推荐你能通读一遍access帮助文件。 包括里面的示例文件!

 

 



朱亦文 发表于:2009-02-10 01:59:08

用一个DLookup取代你的绿色的循环,又明快又简便。



总记录:2篇  页次:1/1 9 1 :