|
|
|
| Я тута функцию мастрячу и хотел было ею воспользоваться, но как передать тип создаваемого поля - "логическое поле" ?
Public Function FUN_ADD_FIELD_NEW(CONNECT As Connection, _
STR_TABLE_NAME As String, _
STR_FIELD_NAME As String, _
STR_FIELD_TYP As String) As Boolean
' добавление поля к таблице.
' "MONEY" "TEXT(25)", "DOUBLE"
Dim adoxCat As Object
Dim adoxTbl As Object
On Error GoTo FUN_ADD_FIELD_NEW_Error
'----------------------------------------------------------------------------------
FUN_ADD_FIELD_NEW = True
Set adoxCat = CreateObject("ADOX.Catalog")
Set adoxTbl = CreateObject("ADOX.Table")
Set adoxCat.ActiveConnection = CONNECT
CONNECT.Execute "ALTER TABLE " & STR_TABLE_NAME & "" _
& " ADD COLUMN " & STR_FIELD_NAME & " " & STR_FIELD_TYP
Set adoxCat = Nothing
Set adoxTbl = Nothing
'----------------------------------------------------------------------------------
On Error GoTo 0
Exit Function
FUN_ADD_FIELD_NEW_Error:
MsgBox "Возможно база указана не верно!!! Или изменения уже произведены."
FUN_ADD_FIELD_NEW = False
End Function
|
| |
|
| |
|
|
|
| Бестолоч - bit попробуй | |
|
| |
|
|
|
| Это не то, - мне флажок нужен! | |
|
| |
|
|
|
| Хорошо поговорить с умным человеком - с самим собой | |
|
| |
|
|
|
| Ды он - пургу гонит - какой нафиг умный человек - болтун | |
|
| |
|
|
|
| Снайпер, а ты не в курсе этой тематики?
==================================
Я обгуглился - ответа нету....... | |
|
| |
|
|
|
|
| Пробовал YES/NO - нихтуя
Ани канечно логические, но не флажки
YESNO, BIT?
Не помогают | |
|
| |
|
|
|
| неее - не в курсе
вот нарыл
http://ms.by.ru/HTML/66.htm
возможно что тип adBoolean | |
|
| |
|
|
|
| adBoolean - щас попробываю.. | |
|
| |
|
66 Кб. |
|
| НЕА | |
|
| |
|
|
|
| ну хз :)) я бы в хелпе порылся бы ;)) | |
|
| |
|
|
|
| Я там зарылся уже | |
|
| |
|
|
|
| Не знаю, где у вас находятся таблицы, но в Аксе за отображение поля в виде флажка нужно создать у него дополнительное свойство "DisplayControl" со значением 106 (acCheckBox).
В конструкторе таблицы, в свойствах полей это значение "Флажок" в поле "Тип элемента управления" на вкладке "Подстановка".
С DAO это можно сделать методом CreateProperty. | |
|
| |
|
22 Кб. |
|
| Таблица в Access.
Функция в VB6. | |
|
| |
|
|
|
|
Вызывать, например, так:
SetObjectProperty CurrentDB.TableDefs("MyTable").Fields("MyFields"),"DisplayControl", dbInteger, acCheckBox
Public Function SetObjectProperty(Obj As Object, strPropertyName As String, _
intPropertyType As Integer, varPropertyValue As Variant) As Boolean
On Error GoTo Error_SetObjectProperty
Dim prp As DAO.Property
Obj.Properties(strPropertyName) = varPropertyValue
SetObjectProperty = True
Exit_SetObjectProperty:
On Error Resume Next
Set prp = Nothing
Exit Function
Error_SetObjectProperty:
Select Case Err.Number
Case 3270 'Свойство не найдено
Set prp = Obj.CreateProperty(strPropertyName, intPropertyType, varPropertyValue)
Obj.Properties.Append prp
Obj.Properties.Refresh
Resume Next
Case Else
MsgBox "Error #" & Err.Number & " in SetObjectProperty: " & vbCrLf & Err.Description
SetObjectProperty = False
End Select
Resume Exit_SetObjectProperty
End Function
---
Serge Gavrilov
http://accesstools.narod.ru
|
| |
|
| |
|
|
|
| Осталось сообразить как это прикрутить к первой функции топика....
CurrentDb.TableDefs("TBLSP_SPR").Fields("поле для которого нужен флажок").Properties("DisplayControl") = CInt(acCheckBox)
|
| |
|
| |
|
|
|
| хз я так делал :)
'-- будем дописывать по мере надобности :)
'-- http://allenbrowne.com/func-DAO.html
Public Function addLinkedColumn(tbn$, cnam$, ctyp$, defValue, Optional withDrop% = 0)
Dim db1 As dao.Database, isFieldYes%
On Error GoTo err123
isFieldYes = 0
Set db1 = OpenDatabase(Split(CurrentDb.TableDefs(tbn).Connect, "=")(1))
On Error Resume Next
If db1.TableDefs(tbn).Fields(cnam).Name = cnam Then
isFieldYes = 1
If withDrop <> 0 And Err = 0 Then
Err = 0
db1.Execute "ALTER TABLE [" & tbn & "] DROP COLUMN [" & cnam & "] ", dbFailOnError
If Err = 0 Then
isFieldYes = 0
Else
MsgBox "Не удалось выполнить изменения" & vbCrLf & Error & vbCrLf & iDevelop, , "addLinkedColumn:dropcolumn"
End If
End If
End If
On Error GoTo err123
If isFieldYes = 0 Then
db1.Execute "ALTER TABLE [" & tbn & "] ADD COLUMN [" & cnam & "] " & ctyp, dbFailOnError
Select Case LCase(ctyp)
Case "yesno"
db1.TableDefs(tbn).Fields(cnam).DefaultValue = Nz(defValue, 0)
Call SetPropertyDAO(db1.TableDefs(tbn).Fields(cnam), "DisplayControl", dbInteger, CInt(acCheckBox))
End Select
End If
CurrentDb.TableDefs(tbn).RefreshLink
Exit Function
err123:
MsgBox "Не удалось выполнить изменения" & vbCrLf & Error & vbCrLf & iDevelop, , "addLinkedColumn"
Exit Function
End Function
|
Call addLinkedColumn("tt_args_list", "inList", "YESNO", True)
| |
|
| |
|
|
|
| Это канешно - всё нормально и рабоче.... | |
|
| |
|
|
|
|
Public Function FUN_ADD_FIELD_NEW(CONNECT As Connection, _
STR_TABLE_NAME As String, _
STR_FIELD_NAME As String, _
STR_FIELD_TYP As String) As Boolean
' добавление поля к таблице.
' "MONEY" "TEXT(25)", "DOUBLE", "BIT"
Dim adoxCat As Object
Dim adoxTbl As Object
On Error GoTo FUN_ADD_FIELD_NEW_Error
'----------------------------------------------------------------------------------
FUN_ADD_FIELD_NEW = True
Set adoxCat = CreateObject("ADOX.Catalog")
Set adoxTbl = CreateObject("ADOX.Table")
Set adoxCat.ActiveConnection = CONNECT
CONNECT.Execute "ALTER TABLE " & STR_TABLE_NAME & "" _
& " ADD COLUMN " & STR_FIELD_NAME & " " & STR_FIELD_TYP
CONNECT.TableDefs(STR_TABLE_NAME).Fields(STR_FIELD_NAME).Properties("DisplayControl") = 106
Set adoxCat = Nothing
Set adoxTbl = Nothing
'----------------------------------------------------------------------------------
On Error GoTo 0
Exit Function
FUN_ADD_FIELD_NEW_Error:
MsgBox "Возможно база указана не верно!!! Или изменения уже произведены."
FUN_ADD_FIELD_NEW = False
End Function
|
| |
|
| |
|
|
|
|
CONNECT.Execute "ALTER TABLE " & STR_TABLE_NAME & "" _
& " ADD COLUMN " & STR_FIELD_NAME & " " & STR_FIELD_TYP
Set prt = CONNECT.fld.CreateProperty("DisplayControl", adInteger, 106)
CONNECT.fld.Properties.Append prt
CONNECT.fld.Properties.Refresh
|
что то не так....... | |
|
| |
|
|
|
| Я бы сказал все не так. :)
Гремучая смесь ADO и DAO. | |
|
| |
|
|
|
| Угу...... | |
|
| |
|
|
|
| Я тут прикинул - хреново быть бестолковым.
Нафига в таблице делать флажок.......
Пусть оно там так и будет логическим полем, а вот на форме - нарисуем флажок, связанный с этим полем - и
пробалемы то нет.
ЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁ - тупость -двигатель прогресса | |
|
| |
|
|
|
| если честно сказать, твои вопросы иногда вгоняют в ступор. | |
|
| |
|
|
|
|
если честно сказать, твои вопросы иногда вгоняют в ступор.
|
Вот и я о том же.
Я порой от них в ступоре нахожусь - с ними ложусь и просыпаюсь - УЖЖЖЖАССС | |
|
| |
|