Здравствуйте дорогие товарисчи! Надо помощь советом. Пробую нарыть в интернете как переименовать колонку в Access 2000 таблице (VB-6, Win2000pro). Ну ничего не получается. Уже сомневаюсь делает ли это SQL запрос вообще или нет.
Ниже привожу код в котором 2 кнопки добавления и удаления колонки работают, а переименование (3я кнопка) нет. Но именно такой запрос как в коде для нее, я нашел в инете.
В references проекта вроде все проставлено. На форме есть MSFlexGrid и три кнопки. Где ошибка?
Option Explicit
Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
'Тут не совсем корректно заполняется MSFlexGrid, но не в
'этом суть. Результаты работы кнопок я видел открывая
'базу через Microsoft Access программу
Set rs = Nothing
Set db = Nothing
End Sub
Private Sub cmdAddColumn_Click()
Dim sqlStatement As String
sqlStatement = "ALTER TABLE Table1 ADD mmm TEXT NOT NULL"
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Persist Security Info=False"
Call db.Execute(sqlStatement)
db.Close
End Sub
Private Sub cmdDelColumn_Click()
Dim sqlStatement As String
sqlStatement = "ALTER TABLE Table1 DROP COLUMN mmm"
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Persist Security Info=False"
Call db.Execute(sqlStatement)
db.Close
End Sub
Private Sub cmdRenColumn_Click()
Dim sqlStatement As String
sqlStatement = "ALTER TABLE Table1 RENAME COLUMN mmm TO aaa"
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Persist Security Info=False"
Call db.Execute(sqlStatement)
'И вот тут он мне говорит что есть синтаксическая ошибка
' в составлении запроса
db.Close
End Sub
Нет, не получается. Попрежнему та же ошибка. Конечно что-то напутал, раз не идет.
И код выложил что-бы легче было попробовать у себя. У кого пойдет, - пишите.
Public Function ReNameColumn(DataBasePath As String, Table As String, OldColumn As String, _
NewColumn As String, _
Optional Password As String) As Long '+
'Переименовывает столбец в таблице в базе данных
'При успехе возвращает 0, иначе номер ошибки
On Error GoTo e
Dim ct As ADOX.Catalog
Dim MyColumn As ADOX.Column
Set MyColumn = ct.Tables(Table).Columns(OldColumn)
MyColumn.Name = NewColumn
Set cl = Nothing
Set MyColumn = Nothing
ReNameColumn = 0
Exit Function
e:
ReNameColumn = Err.Number
Debug.Print Err.Description
 escriptionLastError = Err.Description
On Error GoTo 0: On Error Resume Next
Set cl = Nothing
Set MyColumn = Nothing
End Function