设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 379|回复: 4
打印 上一主题 下一主题

赋值

[复制链接]
跳转到指定楼层
1#
发表于 2002-10-24 23:39:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样把“0”赋给所有字段里(字段很多。。。)“is null”的值呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2002-10-24 23:45:00 | 只看该作者
做一个更新查询一次性更新!
3#
 楼主| 发表于 2002-10-25 06:16:00 | 只看该作者
更新查询不是要一个字段一个字段设定的吗?我是说很多字段一次性地查询,应该怎么做呢?

点击这里给我发消息

4#
发表于 2002-10-25 16:48:00 | 只看该作者
你是要更改表的结构呢?还是要单纯的改表里的值?

点击这里给我发消息

5#
发表于 2002-10-25 22:14:00 | 只看该作者
如果是单纯的改表里的值,请参考下面的函数:

'******************************************************************************
'*   项目名称:   更改表中字段值                                             
'*   过程函数名: ChangTableValue  类型:Function                             
'*                                                                           
'*   版权所有:   Access中国首页(http://www.office-cn.net)                  
'*   作者:       zhengjialon(57162399@163.com)                              
'*                                                                           
'*   参数:ChangTableName(String) 用于被更改表的名称                          
'*   返回:本函数不返回值                                                     
'*                                                                           
'*   完成时间: 2002年10月25日                                                
'*   修改时间: 暂无                                                         
'*                                                                           
'*   说明:1.本函数是用ADO,因此必须用ACCESS2000或以上版本。                  
'*         1.本函数会一次性更改你表里的所有记录的所有字段值,                 
'*           ("自动编号"和"OLE 对象"两种数据类型除外)请谨慎使用。           
'*         2.ACCESS2000+WIN2000SERVER和ACCESS2000+WIN98已通过。               
'*         3.如果发现错误或有更好的建议和意见请发E-mail给我。                 
'******************************************************************************

Public Function ChangTableValue(ChangTableName As String)

    Dim con As Object
    Dim rs As Object
    Dim fldLoop As ADODB.Field
   
On Error GoTo ChangTableValue_Err
   
    Set con = Application.CurrentProject.Connection
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open "SELECT * FROM " & ChangTableName, con, 3, 3 '可以把[表1]换成你自已的表。

    If (rs.EOF) Then
        rs.Close
        con.Close
        MsgBox "所选表中记录数为0,没有记录可以更新!", 48, "ChangTableValue"
    Else
        Do While (Not (rs.EOF))
            For Each fldLoop In rs.Fields
                 '下面的IF语句是用来排除你不想更新的字段,这里默认排除表中的ID字段和5字段,
                 '因为我的表中它们分别是"自动编号"和"OLE 对象",你可以改为其它字段名。
12               If fldLoop.name <> "ID" And fldLoop.name <> "OLE 对象" Then
                    fldLoop.Value = 0
                    rs.Update
                 End If
            Next fldLoop
            rs.MoveNext
        Loop
        
        rs.Close
        con.Close
    End If
   
ChangTableValue_Exit:
    Exit Function
   
ChangTableValue_Err:
    'ACCESS中只有两种字段类型不可更新为0,"自动编号"和"OLE 对象"这两种要排除在外,
    '遇到此情况,下面会提醒把它在12句中排除。
    If Err.Number = -2147352571 Then
        MsgBox "字段" & fldLoop.name & "不能更改数值为0,因为它是不能输入0的数据类型。请在12句上更改。", 48, "ChangTableValue"
        rs.Close
        con.Close
        Resume ChangTableValue_Exit
    '提醒表不可以以独占方式打开
    ElseIf Err.Number = -2147467259 Then
        MsgBox "该表已被以独占方式打开,请关闭此表", 48, "ChangTableValue"
        rs.Close
        con.Close
        Resume ChangTableValue_Exit
    End If
End Function
'在窗体中调用
Private Sub 命令按钮_Click()
    ChangTableValue ("表1")
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-23 09:23 , Processed in 0.090308 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表