求助:Access使用SQL创建设计表的布尔型变量格式
我用SQL在VB 程序中建 设计表。其中有一布尔型变量,其默认格式为1为true,0为False。我想在SQL语句中使它的格式为Yes/No,请问我该怎么写SQL语句?
如例:
dim strSQL as string
strSQl="Create table AA( ID AUTOINCREMENT,Name Varchar(12),"& _
"Exist [red]yesno[/red],Premary Key(ID))"
问题点数:80、回复次数:61Top
1 楼raulvim()回复于 2006-11-21 19:13:05 得分 0
我用SQL在VB 程序中建 设计表。其中有一布尔型变量,其默认格式为1为true,0为False。我想在SQL语句中使它的格式为Yes/No,请问我该怎么写SQL语句?
如例:
dim strSQL as string
strSQl="Create table AA( ID AUTOINCREMENT,Name Varchar(12),"& _
"Exist yesno,Premary Key(ID))"
Top
2 楼raulvim()回复于 2006-11-21 23:58:49 得分 0
楼上的,干吗卖广告卖到我这里啊???????????????????
我用SQL在VB 程序中建 设计表。其中有一布尔型变量,其默认格式为1为true,0为False。我想在SQL语句中使它的格式为Yes/No,请问我该怎么写SQL语句?
如例:
dim strSQL as string
strSQl= "Create table AA( ID AUTOINCREMENT,Name Varchar(12), "& _
"Exist yesno,Premary Key(ID))Top
3 楼wwwwb()回复于 2006-11-22 07:29:03 得分 10
不能做到, 用DAO,FOX EXAMPLE
For Each ffg In RR1.TableDefs("rrrr").Fields
If ffg.Name = "b1" Then
For Each qwe In ffg.Properties
MsgBox qwe.Name
If qwe.Name = "format" Then
MsgBox "123"
ffg.Properties.Delete "format"
End If
Next
Set cp = ffg.CreateProperty("format", 10, "true/false")
ffg.Properties.Append cp
End If
NextTop
4 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-22 07:51:00 得分 10
用SQL语句创建表时不能指定这个格式,必须通过VBA代码实现。
可以在查询时变通处理,如下:
SELECT format([字段名],'on/off'),format([字段名],'yes/no'),format([字段名],'true/false') ,*
FROM 表名
Top
5 楼wwwwb()回复于 2006-11-22 07:54:50 得分 0
简单一点,用FORMAT
SELECT format(F1,'yes/no'),* FROM TT
Top
6 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-22 07:58:21 得分 0
在需要显示指定格式的窗体或查询、报表中,用SQL指定格式即可。Top
7 楼raulvim()回复于 2006-11-22 09:41:51 得分 0
SELECT format([字段名],'on/off'),format([字段名],'yes/no'),format([字段名],'true/false') ,*
FROM 表名
在SQL创建表的过程中不能实现设置表中布尔型变量的格式吗?在需要显示指定格式的窗体或查询、报表中,用SQL指定格式即可?是插入代码到查询或者报表中吗?
就我那例子来说,如果格式为Yes/No的话,打开表是看到一个勾选框的,默认为未选,即No.怎样通过代码在程序中实现阿
Top
8 楼wwwwb()回复于 2006-11-22 09:47:45 得分 0
SELECT format([字段名],'on/off'),format([字段名],'yes/no'),format([字段名],'true/false') ,*
FROM 表名
在SQL创建表的过程中不能实现设置表中布尔型变量的格式吗?
不能
在需要显示指定格式的窗体或查询、报表中,用SQL指定格式即可?
是插入代码到查询或者报表中吗?
查询
就我那例子来说,如果格式为Yes/No的话,打开表是看到一个勾选框的,默认为未选,即No.怎样通过代码在程序中实现阿
用DAO实现
for example
Set df = CurrentDb
For Each affg In df.TableDefs("tblNewOrder2").Fields
If affg.Name = "rr" Then
For Each qwe In affg.Properties
If qwe.Name = "format" Or LCase(qwe.Name) = "displaycontrol" Then
qw = qwe.Name
affg.Properties.Delete qw
End If
Next
Set cp = affg.CreateProperty("format", 10, "true/false")
affg.Properties.Append cp
Set cp = affg.CreateProperty("displaycontrol", 3, acCheckBox)
affg.Properties.Append cp
End IfTop
9 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-22 09:50:02 得分 0
如果要修改表中字段的格式,用楼上提供的代码实现即可。
Top
10 楼raulvim()回复于 2006-11-22 11:36:20 得分 0
[/color=blue]我不懂我再问[/color],我用的是ADO连接数据库的,再加DAO不会有冲突吧?
[/color=red]df.TableDefs("tblNewOrder2").Fields[/color]是什么意思啊,主要是里面的参数不太明白,因为我DAO用的少。
Set [/color=red]cp[/color] = affg.[color=red]CreateProperty[/color]("format", 10, "true/false")
cp是什么类型啊,没有定义阿,还有qw,affg.name。还有CreateProperty对象的属性?tblNewOrder2是表名吧。
我在表建成之后的下一步马上修改变量类型对吧?
谢谢你们的指点。
Top
11 楼wwwwb()回复于 2006-11-22 11:42:53 得分 0
1、自己看看DAO的帮助;
2、FOR EXAMPLE:
VCATALOG = CREATEOBJECT('DAO.DBEngine.36')
fg1=VCATALOG.opendatabase("d:\zz\db2.mdb")
For Each affg In fg1.TableDefs("tblNewOrder2").Fields
If affg.Name = "rr" Then
For Each qwe In affg.Properties
If qwe.Name = "format" Or Lower(qwe.Name) = "displaycontrol" Then
qw = qwe.Name
affg.Properties.Delete(qw)
EndIf
Next
cp = affg.CreateProperty("format", 10, "true/false")
affg.Properties.Append(cp)
cp = affg.CreateProperty("displaycontrol", 3, 106)
affg.Properties.Append(cp)
EndIf
Next
3、ADO建表,有一定时间的延时,自己用SLEEP延时。Top
12 楼wwwwb()回复于 2006-11-22 12:50:06 得分 0
运行环境?Top
13 楼raulvim()回复于 2006-11-22 14:10:08 得分 0
运行环境就是Access2003,通过ADO连接数据库。ACCESS2003本身合成了ACCESS和VB的环境。楼上的还有什么要补充的吗?
我看cp是你自己定义的变量吧,什么类型阿?还有qw。tblNewOrder2是表名吧。
Top
14 楼wwwwb()回复于 2006-11-22 14:16:20 得分 0
在ACCESS中运行,我的代码即可,
qw。tblNewOrder2是表名吧。
NO,QW是变量,tblNewOrder2是表名
cp是:
Dim cp As DAO.PropertyTop
15 楼raulvim()回复于 2006-11-22 14:29:48 得分 0
非常感谢楼上及时的回复,好人一生平安。
qw是什么类型变量阿,能否提供详细一点的代码。谢谢Top
16 楼wwwwb()回复于 2006-11-22 14:32:36 得分 0
qw是什么类型变量阿:stringTop
17 楼raulvim()回复于 2006-11-22 14:34:49 得分 0
...
dim strSQL as string
strSQl="Create table AA( ID AUTOINCREMENT,Name Varchar(12),"& _
"Exist [red]yesno[/red],Premary Key(ID))"
GenerateTable rsRecords, strSQl
....
Public Function GenerateTable(rsRecords As ADODB.Recordset, strSQl As String) As Boolean
On Error GoTo handleerror
Set cnConn = New ADODB.Connection
cnConn.Open strConnection
rsRecords.Open strSQl, cnConn, adOpenStatic, adLockOptimistic
GenerateTable = True
Set cnConn = Nothing
Exit Function
handleerror:
GeneralErrorHandler Err.Number, Err.Description, DB_LOGIC, "GenerateTable"
Exit Function
End Function
Top
18 楼raulvim()回复于 2006-11-22 14:38:05 得分 0
qwe呢?affg是string吧,用来表示什么的Top
19 楼raulvim()回复于 2006-11-22 14:43:15 得分 0
引用项目 Microsoft DAO 3.6Object Library可以了吧。上面是我的建表程序Top
20 楼wwwwb()回复于 2006-11-22 14:43:54 得分 0
affg是string吧
no,Dim affg As DAO.Field
qwe:
Dim qwe As DAO.PropertyTop
21 楼wwwwb()回复于 2006-11-22 14:44:55 得分 0
1、自己多试试;
2、看看ACCESS的帮助。Top
22 楼raulvim()回复于 2006-11-22 14:46:46 得分 0
谢谢你。我先试试吧。搞不懂再向你请教。Top
23 楼raulvim()回复于 2006-11-22 15:22:31 得分 0
请教wwwwb(),DAO不怎么熟悉阿。
VCATALOG 是 Workspace 吧
我dim fg1 as Database
但是fg1=VCATALOG.opendatabase("d:\zz\db2.mdb")就错误了,说fg1为不正确的属性,请指教
Top
24 楼raulvim()回复于 2006-11-22 15:24:59 得分 0
是要指定fg1为ACCESS数据库吗?怎么赋值?Top
25 楼wwwwb()回复于 2006-11-22 15:29:02 得分 20
1、看看ACCESS的帮助;
2、你在ACCESS中,用
Set df = CurrentDb
For Each affg In df.TableDefs("tblNewOrder2").Fields
If affg.Name = "rr" Then
For Each qwe In affg.Properties
If qwe.Name = "format" Or LCase(qwe.Name) = "displaycontrol" Then
qw = qwe.Name
affg.Properties.Delete qw
End If
Next
Set cp = affg.CreateProperty("format", 10, "true/false")
affg.Properties.Append cp
Set cp = affg.CreateProperty("displaycontrol", 3, acCheckBox)
affg.Properties.Append cp
End If
即可,第二段代码,是在其它语言的代码,你的运行环境?Top
26 楼raulvim()回复于 2006-11-22 15:49:16 得分 0
这个Workspace应该是这样吧
Dim VCATALOG As DAO.Workspace
Set VCATALOG = CreateObject("DAO.DBEngine.36")
Top
27 楼wwwwb()回复于 2006-11-22 15:57:14 得分 0
这个Workspace应该是这样吧
Dim VCATALOG As DAO.Workspace
no, Dim dbe As Object
在ACCESS中不需要这样。Top
28 楼raulvim()回复于 2006-11-22 16:08:17 得分 0
再问,是否还要写TableDefX方法的程序Top
29 楼raulvim()回复于 2006-11-22 16:14:42 得分 0
运行环境是ACCESS集成的ACCESS+VB,ADO连接数据库,即
Sub OpenDbConnection()
On Error GoTo handleerror
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CurrentProject.Path & "\DataBase\" & DB & ".mdb;"
'create a new connection instance and open it using the connection string
Set cnConn = New ADODB.Connection
cnConn.Open strConnection
Exit Sub
handleerror:
GeneralErrorHandler Err.Number, Err.Description, DB_LOGIC, "OpenDbConnection"
Exit Sub
End Sub
即可,第二段代码,是在其它语言的代码,你的运行环境?
第二段代码是指下面的吗?
1、自己看看DAO的帮助;
2、FOR EXAMPLE:
VCATALOG = CREATEOBJECT('DAO.DBEngine.36')
fg1=VCATALOG.opendatabase("d:\zz\db2.mdb")
For Each affg In fg1.TableDefs("tblNewOrder2").Fields
If affg.Name = "rr" Then
For Each qwe In affg.Properties
If qwe.Name = "format" Or Lower(qwe.Name) = "displaycontrol" Then
qw = qwe.Name
affg.Properties.Delete(qw)
EndIf
Next
cp = affg.CreateProperty("format", 10, "true/false")
affg.Properties.Append(cp)
cp = affg.CreateProperty("displaycontrol", 3, 106)
affg.Properties.Append(cp)
EndIf
Next
3、ADO建表,有一定时间的延时,自己用SLEEP延时。
Top
30 楼wwwwb()回复于 2006-11-22 16:15:16 得分 0
再问,是否还要写TableDefX方法的程序
什么意思Top
31 楼wwwwb()回复于 2006-11-22 16:18:56 得分 0
我一在问你的运行环境,我的代码是VBA的,即在ACCESS中,VB的问题
请到VB版块去问吧,估计差别不是很大。Top
32 楼raulvim()回复于 2006-11-22 16:26:50 得分 0
不好意思。我的代码就是VBA啊。Visual Basic for Applications.请指教啊。遇到你真是太好了。我用的指导书是ACCESS2003 VBATop
33 楼raulvim()回复于 2006-11-22 16:29:15 得分 0
我这样做程序
Public Function Formula() As Boolean
On Error GoTo handleerror
Dim qwe As DAO.Property
Dim cp As DAO.Property
Dim qw As String
Dim fg1 As DAO.Field
Set fg1 = CurrentDb
Dim affg As DAO.Field
Dim VCATALOG As DAO.Workspace
Set VCATALOG = CreateObject("DAO.DBEngine.36")
fg1 = VCATALOG.OpenDatabase("" & CurrentProject.Path & "\DataBase\" & DB & ".mdb")
For Each affg In fg1.TableDefs("" & tblLC & " ").Fields
If affg.Name = "Shiped" Then
For Each qwe In affg.Properties
If qwe.Name = "yes/no" Or LCase(qwe.Name) = "displaycontrol" Then
qw = qwe.Name
affg.Properties.Delete (qw)
End If
Next
cp = affg.CreateProperty("yes/no", 10, "true/false")
affg.Properties.Append (cp)
cp = affg.CreateProperty("displaycontrol", 3, 106)
affg.Properties.Append (cp)
End If
Next
Formula = True
Exit Function
handleerror:
GeneralErrorHandler Err.Number, Err.Description, DB_LOGIC, "Formula"
Exit Function
End Function
Top
34 楼raulvim()回复于 2006-11-22 16:30:26 得分 0
其中Shiped 为字段名,类型为yesno(布尔)Top
35 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-22 20:06:45 得分 20
使用如下代码试一下:
'功能:设置表中Boolean型变量的格式
'引用:DAO
Sub FnSetFieldFormat()
Dim db As Database
Set db = DBEngine(0).OpenDatabase("D:\Test.Mdb")
Dim cp1 As DAO.Property '属性变量1
Dim cp2 As DAO.Property '属性变量2
Dim strPropertyName As String '属性名称
Dim fld As DAO.Field '字段变量
For Each fld In db.TableDefs("表名").Fields
If fld.name = "是否记账" Then
For Each cp1 In fld.Properties
If cp1.name = "format" Or LCase(cp1.name) = "displaycontrol" Then
strPropertyName = cp1.name
fld.Properties.Delete cp1.name
If strPropertyName = "format" Then
Set cp2 = fld.CreateProperty("format", 10, "true/false") 'on/off 或 yes/no 或 true/false
fld.Properties.Append cp2
End If
If strPropertyName = "displaycontrol" Then
Set cp2 = fld.CreateProperty("displaycontrol", 3, 106)
fld.Properties.Append cp2
End If
End If
Next
End If
Next
MsgBox "ok"
End SubTop
36 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-22 20:08:01 得分 0
'在模块中创建如下代码:
'功能:设置表中Boolean型变量的格式
'引用:DAO
Sub FnSetFieldFormat()
Dim db As Database
Set db = DBEngine(0).OpenDatabase("D:\Test.Mdb")
Dim cp1 As DAO.Property '属性变量1
Dim cp2 As DAO.Property '属性变量2
Dim strPropertyName As String '属性名称
Dim fld As DAO.Field '字段变量
For Each fld In db.TableDefs("表名").Fields
If fld.name = "是否记账" Then
For Each cp1 In fld.Properties
If cp1.name = "format" Or LCase(cp1.name) = "displaycontrol" Then
strPropertyName = cp1.name
fld.Properties.Delete cp1.name
If strPropertyName = "format" Then
'on/off 或 yes/no 或 true/false
Set cp2 = fld.CreateProperty("format", 10, "true/false")
fld.Properties.Append cp2
End If
If strPropertyName = "displaycontrol" Then
Set cp2 = fld.CreateProperty("displaycontrol", 3, 106)
fld.Properties.Append cp2
End If
End If
Next
End If
Next
MsgBox "ok"
End Sub
Top
37 楼raulvim()回复于 2006-11-22 21:11:51 得分 0
谢谢。我马上看看。Top
38 楼raulvim()回复于 2006-11-22 21:53:39 得分 0
程序可以运行。不过有几点我不明白。 If cp1.name = "format" Or LCase(cp1.name) = "displaycontrol" Then
strPropertyName = cp1.name
fld.Properties.Delete cp1.name
If strPropertyName = "format" Then
'on/off 或 yes/no 或 true/false
Set cp2 = fld.CreateProperty("format", 10, "true/false")
fld.Properties.Append cp2
End If
If strPropertyName = "displaycontrol" Then
Set cp2 = fld.CreateProperty("displaycontrol", 3, 106)
fld.Properties.Append cp2
End If
End If
首先它是先找数据库,然后找表,再找比较每一个字段跟自己要改变格式的字段。找到字段之后再找字段的各个属性对吧。找到了就修改。
其中的Format是指类型yesno,还是指布尔格式为yes/no,或者True/False."displaycontrol"是指什么啊。Top
39 楼raulvim()回复于 2006-11-23 00:01:07 得分 0
楼上的兄弟,我试过你的方法,可以运行,但是运行之后没有变化,因为找不到cp1.name = "format" Or LCase(cp1.name) = "displaycontrol",所以里面的都执行不了.试个简单的程序吧.我先窗体frmTest,有两个按钮一个是创建表Test的按钮,名称为"CmdCreate",标题为"Create"
另外一个为改变布尔型(是/否)格式的按钮,名称为"CmdChange",标题为"ChangeFormat".
代码如下 :
Option Compare Database
Const DB_LOGIC = "frmTest"
Private Sub CmdChange_Click()
Call FnSetFieldFormat
End Sub
Private Sub CmdCreate_Click()
Dim rsRecords As New ADODB.Recordset, strSQl As String
strSQl = "create table Test(ID AUTOINCREMENT,Jizhang yesno,Primary Key(Id))"
GenerateTable rsRecords, strSQl
End Sub
Private Sub Form_Load()
End Sub
Public Function GenerateTable(rsRecords As ADODB.Recordset, strSQl As String) As Boolean
On Error GoTo handleerror
Dim cnConn As ADODB.Connection
Dim strConnection As String
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:\Test.mdb;"
Set cnConn = New ADODB.Connection
cnConn.Open strConnection
rsRecords.Open strSQl, cnConn, adOpenStatic, adLockOptimistic
GenerateTable = True
Set cnConn = Nothing
Exit Function
handleerror:
GeneralErrorHandler Err.Number, Err.Description, DB_LOGIC, "GenerateTable"
Exit Function
End Function
Sub FnSetFieldFormat()
On Error GoTo handleerror
Dim db As Database
Set db = DBEngine(0).OpenDatabase("D:\Test.Mdb")
Dim cp1 As DAO.Property '属性变量1
Dim cp2 As DAO.Property '属性变量2
Dim strPropertyName As String '属性名称
Dim fld As DAO.Field '字段变量
For Each fld In db.TableDefs("Test").Fields
If fld.Name = "Jizhang" Then
For Each cp1 In fld.Properties
If cp1.Name = "yesno" Or LCase(cp1.Name) = "displaycontrol" Then
strPropertyName = cp1.Name
fld.Properties.Delete cp1.Name
If strPropertyName = "true/false" Then
'on/off 或 yes/no 或 true/false
Set cp2 = fld.CreateProperty("true/false", 10, "yes/no")
fld.Properties.Append cp2
End If
If strPropertyName = "displaycontrol" Then
Set cp2 = fld.CreateProperty("displaycontrol", 3, 106)
fld.Properties.Append cp2
End If
End If
Next
End If
Next
MsgBox "ok"
Exit Sub
handleerror:
GeneralErrorHandler Err.Number, Err.Description, DB_LOGIC, "FnSetFieldFormat"
Exit Sub
End Sub
Public Sub GeneralErrorHandler(lngErrNumber As Long, strErrDesc As String, strModuleSource As String, strProcedureSource As String)
On Error Resume Next
Dim strMessage As String
'build the error message string from the parameters passed in
strMessage = "An error has occurred in the application."
strMessage = strMessage & vbCrLf & "Error Number: " & lngErrNumber
strMessage = strMessage & vbCrLf & "Error Description: " & strErrDesc
strMessage = strMessage & vbCrLf & "Module Source: " & strModuleSource
strMessage = strMessage & vbCrLf & "Procedure Source: " & strProcedureSource
'display the message to the user
MsgBox strMessage, vbCritical
Exit Sub
End Sub
运行没有错误,可以找到字段Jizhang,我追踪cp1.Name的值,循环语句一共出现20个值.1,Value;2,Attributes;3,CollatingOrder;4,Type;5,Name;6,OrdinalPosition;7,Size;8,SourceField;9,SourceTable;10,ValidateOnSet;11,DataUpdatable;12,ForeignName;13,DefaultValue;14,ValidationRule;15,ValidationText;16,Required;17,AllowZeroLength;18,FieldSize;19,OriginalValue;20,Visible Value.
而我在设计表中看到的属性确不是这样的,除了同样有DefaultValue(默认值)之外,况且也没有这么多项啊.请指点迷津啊.Top
40 楼wwwwb()回复于 2006-11-23 07:42:12 得分 0
这是我的源码:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim DD As New ADODB.Connection
FF = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zz\DB2.MDB"
DD.Open FF
'DD.Execute ("CREATE TABLE tblNewOrder2 (rr text(10) default '123')")
DD.Execute ("CREATE TABLE tblNewOrder2 (rr logical)")
DD.Close
Set DD = Nothing
Sleep (10000)
Set df = CurrentDb
For Each affg In df.TableDefs("tblNewOrder2").Fields
If affg.Name = "rr" Then
For Each qwe In affg.Properties
If qwe.Name = "format" Or LCase(qwe.Name) = "displaycontrol" Then
qw = qwe.Name
affg.Properties.Delete qw
End If
Next
Set cp = affg.CreateProperty("format", 10, "true/false")
affg.Properties.Append cp
Set cp = affg.CreateProperty("displaycontrol", 3, acCheckBox)
affg.Properties.Append cp
End If
Next
在ACCESS2000下测试通过Top
41 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-23 08:07:04 得分 0
'改进一下,原来没有考虑到没有格式
'在模块中创建如下代码:
'功能:设置表中Boolean型变量的格式
'引用:DAO
Sub FnSetFieldFormat()
Dim db As Database
Set db = DBEngine(0).OpenDatabase("D:\Test.Mdb")
Dim cp1 As DAO.Property '属性变量1
Dim cp2 As DAO.Property '属性变量2
Dim fld As DAO.Field '字段变量
For Each fld In db.TableDefs("表名").Fields
If fld.name = "是否记账" Then
For Each cp1 In fld.Properties
If cp1.name = "format" Then
fld.Properties.Delete cp1.name
End If
Next
'on/off 或 yes/no 或 true/false
Set cp2 = fld.CreateProperty("format", 10, "true/false")
fld.Properties.Append cp2
End If
Next
MsgBox "ok"
End Sub
Top
42 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-23 08:11:10 得分 0
'改进一下,原来没有考虑到没有格式
'在模块中创建如下代码:
'功能:设置表中Boolean型变量的格式
'引用:DAO
Sub FnSetFieldFormat()
Dim db As Database
Set db = DBEngine(0).OpenDatabase("D:\Test.Mdb")
Dim cp As DAO.Property '属性变量
Dim fld As DAO.Field '字段变量
For Each fld In db.TableDefs("表名").Fields
If fld.name = "是否记账" Then
For Each cp In fld.Properties
If cp.name = "format" Then
fld.Properties.Delete cp.name
End If
Next
'on/off 或 yes/no 或 true/false
Set cp = fld.CreateProperty("format", 10, "true/false")
fld.Properties.Append cp
End If
Next
MsgBox "ok"
End Sub
Top
43 楼raulvim()回复于 2006-11-23 08:41:20 得分 0
非常感动,这么早就回帖了。表只有一个字段吧,不过你那函数Sleep Lib "kernel32"()为什么用到字符串"Kernel32"来命名呢?还有里面的长整型参数是指等待时间吗?
Top
44 楼wwwwb()回复于 2006-11-23 08:49:14 得分 0
这是申明API函数SLEEP,用来延时,因为ADO创建表有一定时间的延时。
Top
45 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-11-23 11:34:32 得分 0
格式不允许通过 JET SQL 语句来实现,必须用 DAO 或者 ADOX 来实现
Top
46 楼raulvim()回复于 2006-11-23 15:49:47 得分 0
wangtiecheng兄弟,你那方法不行啊,昨天晚上那种情况。
运行没有错误,可以找到字段Jizhang,我追踪cp1.Name的值,循环语句一共出现20个值.1,Value;2,Attributes;3,CollatingOrder;4,Type;5,Name;6,OrdinalPosition;7,Size;8,SourceField;9,SourceTable;10,ValidateOnSet;11,DataUpdatable;12,ForeignName;13,DefaultValue;14,ValidationRule;15,ValidationText;16,Required;17,AllowZeroLength;18,FieldSize;19,OriginalValue;20,Visible Value.
没有一个与format匹配的.所以总是cp1.name<>"format"。Top
47 楼wwwwb()回复于 2006-11-23 16:02:24 得分 0
上传你的MDB到www.access911.net/csdn
Top
48 楼raulvim()回复于 2006-11-23 16:07:07 得分 0
再问wwwwb兄弟,你的代码我不大明白阿。虽然我定义了FF为String,但是运行不了程序阿,到FF = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zz\DB2.MDB"就说是不正确的外部程序了。我也不知道是不是你还加了其他定义或者控件工程什么的。你能把完整点的.mdb文件发到我邮箱吗,谢谢了!raulvim@126.comTop
49 楼wwwwb()回复于 2006-11-23 16:10:52 得分 0
再问wwwwb兄弟,你的代码我不大明白阿。虽然我定义了FF为String,但是运行不了程序阿,到FF = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zz\DB2.MDB"就说是不正确的外部程序了。我也不知道是不是你还加了其他定义或者控件工程什么的。你能把完整点的.mdb文件发到我邮箱吗,谢谢了!raulvim@126.com
1、d:\zz\DB2.MDB:你的路径,如D:\TEMP\123.MDB
2、引用ADO,不过,已经自动引用ADO,手工引用DAO3.6。Top
50 楼wwwwb()回复于 2006-11-23 16:11:14 得分 0
上传你的MDB到www.access911.net/csdnTop
51 楼raulvim()回复于 2006-11-23 16:17:00 得分 0
已经上传了,地址为
http://access911.net/csdn/FileDescription.asp?mdb=2006-11-23&id=129
再次多谢wwwwb兄弟的帮忙
Top
52 楼raulvim()回复于 2006-11-23 16:21:46 得分 0
我已经引用了Microsoft DAO 3.6Library了。Top
53 楼wwwwb()回复于 2006-11-23 16:23:24 得分 10
已经上传,窗体1,自己将路径修改一下即可,在ACCESS下测试通过。
Top
54 楼raulvim()回复于 2006-11-23 16:30:58 得分 0
非常感谢。我下载了。不过公司的是繁体版所以出现乱码。我修改一下或者回去宿舍再看。Top
55 楼raulvim()回复于 2006-11-23 18:47:06 得分 0
后来重新来过就可以运行,但是运行之后我去设计表看到什么都没有变化啊,我要到是格式为Yes/No,显示控件为文本框,但是这个目的根本就没有达到啊.好像这个格式设置过一次程序就不能再运行了,因为追加不了已经存在的属性.Top
56 楼raulvim()回复于 2006-11-24 08:10:07 得分 0
昨天错误出现在
Set df = CurrentDb
For Each affg In df.TableDefs("tblNewOrder2").Fields
是因为Set df = CurrentDb指的是当前的mdb,所以程序和表在一个文件内才对。后来可以运行但是运行后格式并没有变化,这个才是令人烦恼的阿。我是想把格式改为Yes/No,显示控件为复选框,达不到目的阿Top
57 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-24 12:38:04 得分 0
贴出代码。Top
58 楼raulvim()回复于 2006-11-24 13:25:46 得分 0
问题上午已经解决,谢谢支持!Top
59 楼raulvim()回复于 2006-11-24 14:43:32 得分 0
问题结束。请结贴。Top
60 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-24 14:46:54 得分 0
自己揭帖,别人不能帮你结贴。
右上角“管理”。Top
61 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-11-24 15:14:23 得分 10
-->管理
-->输入密码,逐个给分
-->给分按钮Top




