powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при .Columns("ля-ля").Attributes = adColNullable
9 сообщений из 9, страница 1 из 1
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32331720
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с непонятной ошибкой при выполнении вот такого куска кода:

Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection

Set tbl1 = cat.Tables("tblTempOtobr")

With tbl1.Columns
.Append "typesdel", adVarWChar, 50
.Append "limit", adDouble
.Append "spec", adVarWChar, 25
End With

With tbl1
.Columns("typesdel").Attributes = adColNullable
.Columns("limit").Attributes = adColNullable
.Columns("spec").Attributes = adColNullable
End With

на строке .Columns("typesdel").Attributes = adColNullable вылетает с ошибкой что: произошли ошибки вр время выполнения многошавой операции OLE DB.По возможносте, проверте значения всех состояний OLE DB. Работа не выполнена.

Вот так вот. причем раньше, до внесения изменений в модуль, это кусок кода работал (вроде работал, если мне память не изменяет).

База mdb, AccXP, сервиспаки стоят, ADOX 2.8 - что посоветуете
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32331753
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create table воспользуйся по справке
проще и быстрее
заодно посмотри alter table
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32331775
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быстрее говорите... это конечно хорошо (правда тут отличия в миллисек.), чувствую придется так делать. Просто интересно, что когда сам создаешь таблицу, то запросто меняшь атрибут обязательности поля, а вот когда открываешь уже готовую таблицу и добавляешь..

Кстати, забыл сказать, что эта таблица (которую открываем) как раз и получается в результате SQL запроса "...INTO tblTempOtobr..."

Просто, хотелось бы знать в чем может быть прикол. В ручную, пжл, открываешь, меняешь. Это глюкт ADOX 2.8 что-ли может кто у себя проверит, а ему сброшу тестовый вариант mdb'шки...?
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32339618
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
BUG: Attributes Property of ADOX Columns Collection May Cause Append 
Method to Fail
ActiveX Data Objects (ADO)  1 . 5  -  2 . 6 
RESOLUTION
If you need to create a nullable or fixed length column, you must create the table 
through some mechanism other than ADOX, such as DDL SQL statements (CREATE 
TABLE, for example). 


Но эта статья в МСДН про адо 2.6
У тебя же 2.8 - для нее такой беды вроде бы нет. Есть примеры кода которые должны работать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Set tblEmp = cat.Tables( "Employees" )
    
    ' Create a new Field object and append it to the Fields
    ' collection of the Employees table.
    colTemp.Name =  "FaxPhone" 
    colTemp.Type = adVarWChar
    colTemp.DefinedSize =  24 
    colTemp.Attributes = adColNullable
    cat.Tables( "Employees" ).Columns.Append colTemp.Name, adWChar,  24 
    
    ' Open the Employees table for updating as a Recordset
    rstEmployees.Open  "Employees" , cnn, adOpenKeyset, adLockOptimistic, adCmdTable
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32339731
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Victor: большое спасибо, проверю ща примерчик и свой вариант. При создании новой таблицы проблем не было, а вот при добавлении столбца к уже существующей бяка возникала, ща еще покопаюсь с учетом твоей инфы...
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32339756
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил еще раз и действительно обнаружил у себя, что ссылка соскочила (базу таскали на другой комп, где не было обновления) и в References было:

Microsoft ActiveX Data Objects 2.5 Library
Microsoft ADO Ext. 2.8 for DDL and Security

о чудо, поменял 2.5 на 2.8, но чудо не произошло :( как ругался на строку
.Columns("d4").Attributes = adColNullable
так и ругается.

Ща попробую еще пошаманить, закрыть, сжать, открыть, откоммпилировать и бубном потрести, посмотрим что получится...
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32339764
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наскидку (особо не вникая)
Append из Справки стоит после задания свойств. У тебя наоборот

Вот полный пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
Sub AttributesX()

    Dim cnn As New ADODB.Connection
    Dim cat As New ADOX.Catalog
    Dim colTemp As New ADOX.Column
    Dim rstEmployees As New Recordset
    Dim strMessage As String
    Dim strInput As String
    Dim tblEmp As ADOX.Table
    
    ' Connect the catalog.
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=c:\" & _
        "Program Files\Microsoft Office\Office\Samples\Northwind.mdb;"
    Set cat.ActiveConnection = cnn

    Set tblEmp = cat.Tables("Employees")
    
    ' Create a new Field object and append it to the Fields
    ' collection of the Employees table.
    colTemp.Name = "FaxPhone"
    colTemp.Type = adVarWChar
    colTemp.DefinedSize = 24
    colTemp.Attributes = adColNullable
    cat.Tables("Employees").Columns.Append colTemp
    
    ' Open the Employees table for updating as a Recordset
    rstEmployees.Open  "Employees" , cnn, adOpenKeyset, adLockOptimistic
    
    With rstEmployees
        ' Get user input.
        strMessage = "Enter fax number for " & _
            !FirstName & " " & !LastName & "." & vbCr & _
            "[? - unknown, X - has no fax]"
        strInput = UCase(InputBox(strMessage))
        If strInput <> "" Then
            Select Case strInput
                Case "?"
                    !FaxPhone = Null
                Case "X"
                    !FaxPhone = ""
                Case Else
                    !FaxPhone = strInput
            End Select
            .Update
            
            ' Print report.
            Debug.Print  "Name - Fax number" 
            Debug.Print !FirstName &  " "  & !LastName &  " - " ;

            If IsNull(!FaxPhone) Then
                Debug.Print  "[Unknown]" 
            Else
                If !FaxPhone =  "" Then
                    Debug.Print " [Has no fax]"
                Else
                    Debug.Print !FaxPhone
                End If
            End If

        End If

        .Close
    End With

    ' Delete new field because this is a demonstration.
    tblEmp.Columns.Delete colTemp.Name
    cnn.Close
    
End Sub
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32339790
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так заработало, видно ему не нравится когда пытаются изменить атрибуты после создания столбца, хотя с новой пустой таблицей он мне позволял так делать- сначала создавать столбцы, а потом уже проставлять им атрибуты
...
Рейтинг: 0 / 0
Ошибка при .Columns("ля-ля").Attributes = adColNullable
    #32343979
ValeRRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а может быть вот в это месте
...
With tbl1.Columns
.Append "typesdel", adVarWChar, 50
...
подправить adVarWChar на adVarChar ?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при .Columns("ля-ля").Attributes = adColNullable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]