2016-06-20 2 views
0

Я хотел бы создать Sub, что делает падение некоторые несколько индексов ... Вот что я пытался до сих пор:Капля Multiple индекс MS Access с VBscript

Sub DropIndex(Database, TableName) 

    Set ObjCon3 = CreateObject("ADODB.Connection") 
    Set RecSet3 = CreateObject("ADODB.Recordset") 


    objCon3.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = "& Database &"" 

        ObjCon3.Execute "Drop Index [City] on " & TableName & ", [Company] on " & TableName & ", [Postal Code] on " & TableName & ", [State/Province] on " & TableName & "" 


End Sub 

Что не работает ... Неправильный синтаксис я верю ...

еще, я думаю, что лучше всего было бы создать массив с индексами внутри .. Так что я мог бы сделать:

For X = 0 To Ubound(Index) 

Call DropIndex(Database, TableName, Index(x)) 

Next 

Но я даже не знаю, где я мог бы получить все индексы в массиве. Могу ли я даже поместить переменную в вызов?

ответ

1

В соответствии с документацией MSAccess оператор drop может иметь только тип «drop».

DROP {TABLE table | INDEX index ON table | PROCEDURE procedure | VIEW view} 

Вы должны изменить свое заявление, как ниже:

ObjCon3.Execute "Drop Index [City] on " & TableName 
ObjCon3.Execute "Drop Index [Company] on " & TableName 
ObjCon3.Execute "Drop Index [Postal Code] on " & TableName 
ObjCon3.Execute "Drop Index [State/Province] on " & TableName 
+0

Большое спасибо за советы. Я даже не знал, что могу сделать несколько запросов в одном соединении! Я совершенно новичок в этом. – InfiniteLoop

Смежные вопросы