设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: ADAM
打印 上一主题 下一主题

[其它] 怎么用TABELDEF老是出錯.

[复制链接]
11#
 楼主| 发表于 2003-10-17 22:58:00 | 只看该作者
zhuyiwen,你好歷害,為什么這樣一做,就可以了呢
我也這樣試過
太感謝你了.....
12#
发表于 2003-10-17 23:08:00 | 只看该作者
学了一招,:)
13#
 楼主| 发表于 2003-10-17 23:10:00 | 只看该作者
其實這個貼子主要是想解決表的CAPTION屬性的問題,
再羅嗦一下,我現在還是出錯:

在CREATPROPERTY中出現型態不符,我查過這個方法的用法
可是還是沒頭緒...
而且,我如果不把
FIEL1.Caption = "BBTEST2"這名取消,它執行起來
首先這會報告這句有問題...

斑竹,再幫幫忙............

Private Sub Command18_Click()
Dim db As DAO.Database
    Dim rst As DAO.TableDef
    Dim FIEL1 As DAO.Field
    Dim prpLoop As Property
   
    Set db = CurrentDb
    Set rst = db.TableDefs("bb")
    Set FIEL1 = rst.Fields("bb1")
    SetProperty FIEL1, "CAPTION", True
   'FIEL1.Caption = "BBTEST2"
   
    For Each prpLoop In rst.Properties
        Debug.Print "  " & prpLoop.Name & " = " & prpLoop.Value
    Next prpLoop

End Sub

Sub SetProperty(dbsTemp As Object, strName As String, booTemp As Variant)
Dim prpNew As Property
Dim errLoop As Error
' Attempt to set the specified property.
On Error GoTo Err_property
MsgBox 1
dbsTemp.Properties("strName") = booTemp
On Error GoTo 0
Exit Sub
Err_property:
'Error 3270 means that the property was not found.
If DBEngine.Errors(0).Number = 3270 Then
' Create property, set its value, and append it to the' Properties collection
Set prpNew = dbsTemp.CreateProperty(strName, dbBoolean, booTemp)
dbsTemp.Properties.Append prpNew
Resume Next
Else
' If different error has occurred, display message.
For Each errLoop In DBEngine.Errors
MsgBox "Error number: " & errLoop.Number & vbCr & errLoop.Description
Next errLoop
End
End If

End Sub

点击这里给我发消息

14#
发表于 2003-10-17 23:10:00 | 只看该作者
CurrentDB只是一个ACCESS的方法,它返回一个DAO的Database对象
15#
 楼主| 发表于 2003-10-17 23:45:00 | 只看该作者
斑竹,我還有一點不明....

点击这里给我发消息

16#
发表于 2003-10-17 23:47:00 | 只看该作者
Sub test()
    Dim db As DAO.Database
    Dim rst As DAO.TableDef
    Dim FIEL1 As DAO.Field
    Dim prpLoop As Property
   
    Set db = CurrentDb
    Set rst = db.TableDefs("BB")
    Set FIEL1 = rst.Fields("BB1")
    SetProperty FIEL1, "CAPTION", "BB1的标题"
   
    For Each prpLoop In FIEL1.Properties
        Debug.Print "  " & prpLoop.Name
    Next prpLoop

End Sub

Sub SetProperty(dbsTemp As Object, strName As String, strValue As String)

    Dim prpNew As Property
    Dim errLoop As Error

    On Error GoTo Err_Property
    ' 这是帮助中的写法 : dbsTemp.Properties("strName") = strValue,错误的
    dbsTemp.Properties(strName) = strValue
    On Error GoTo 0

    Exit Sub

Err_Property:

    If DBEngine.Errors(0).Number = 3270 Then
        Set prpNew = dbsTemp.CreateProperty(strName, dbText, strValue)
        dbsTemp.Properties.Append prpNew
        Resume Next
    Else
        For Each errLoop In DBEngine.Errors
            MsgBox "Error number: " & errLoop.Number & vbCr & _
                errLoop.Description
        Next errLoop
        End
    End If

End Sub

' PASS PASS PASS
[此贴子已经被作者于2003-10-17 16:09:32编辑过]

17#
 楼主| 发表于 2003-10-18 00:14:00 | 只看该作者
斑竹老大,這一句在我這里出錯了:

For Each prpLoop In FIEL1.Properties

提示:型態不符..

点击这里给我发消息

18#
发表于 2003-10-18 00:34:00 | 只看该作者
以下是引用ADAM在2003-10-17 16:14:10的发言:
斑竹老大,這一句在我這里出錯了:

For Each prpLoop In FIEL1.Properties

提示:型態不符..


请仔细检查你的代码。
19#
 楼主| 发表于 2003-10-18 01:18:00 | 只看该作者
我查了,真的不知錯在哪里....
指點指點...
謝謝了...
但是
把 Dim prpLoop As Property 改成 Dim prpLoop As object
就可以了...

??????
20#
发表于 2003-11-22 18:52:00 | 只看该作者
究竟是如何给字段标题赋值,最终的代码是什么?我还是不明白。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-8 09:00 , Processed in 0.113860 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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