CRIAAR INDEX EM UM BANCO MDB COM INSTRUCAO SQL
Olá galera será que é possÃvel criar um index em um banco MDB (Access) em uma tabela através de uma instrução SQL
veja se ajuda:
http://www.vbmania.com.br/vbmforum.php?varMethod=Abrir&varID=51315&varSubPagina=2&varFiltro=filtro
http://www.vbmania.com.br/vbmforum.php?varMethod=Abrir&varID=51315&varSubPagina=2&varFiltro=filtro
Set idx = tbl.CreateIndex("NOSSONUM") 'cria indice com o nome primarykey
Set cpo = idx.CreateField("NOSSONUM")
idx.Fields.Append cpo
idx.Primary = True 'define o indice como chave primaria
tbl.Indexes.Append idx 'insere o
Set cpo = idx.CreateField("NOSSONUM")
idx.Fields.Append cpo
idx.Primary = True 'define o indice como chave primaria
tbl.Indexes.Append idx 'insere o
BOM , ESSA FUNÇÃO FAZ ISSO (DAO)
O VARIAVEL BANCO NESTA FUNÇÃO , ESTOU CHAMANDO DE DB1
Public Sub sbDB_CriaIndice(ByVal sTabela As String, ByVal sNomeIndice As String, _
ByVal sNomeCampo As String, ByVal blnChavePrimaria As Boolean, _
Optional ByVal sCampoSecundario As String)
On Error GoTo erro_
If Not fcDB_ExisteIndice(sTabela, sNomeIndice) Then 'FAB 27nov01
Dim tabTabela As TableDef
Dim indIndice As Index
Dim fldCampo As Field
Set tabTabela = DB1.TableDefs(sTabela)
Set indIndice = tabTabela.CreateIndex(sNomeIndice)
Set fldCampo = indIndice.CreateField(sNomeCampo)
indIndice.Fields.Append fldCampo
If sCampoSecundario <> "" Then
Set fldCampo = indIndice.CreateField(sCampoSecundario)
indIndice.Fields.Append fldCampo
End If
indIndice.Primary = blnChavePrimaria
tabTabela.Indexes.Append indIndice
Set fldCampo = Nothing
Set indIndice = Nothing
Set tabTabela = Nothing
End If
Exit Sub
erro_:
MsgBox Err.Number & ", " & Err.Description, vbCritical, "Erro"
End Sub
Public Function fcDB_ExisteIndice(ByVal sTabela As String, _
ByVal sNomeIndice As String) As Boolean
On Error GoTo erro_
Dim tabTabela As TableDef
Dim i As Integer
Set tabTabela = DB1.TableDefs(sTabela)
fcDB_ExisteIndice = False
For i = 0 To tabTabela.Indexes.Count - 1
If UCase(tabTabela.Indexes(i).Name) = UCase(sNomeIndice) Then
fcDB_ExisteIndice = True
Exit For
End If
Next i
Set tabTabela = Nothing
Exit Function
erro_:
MsgBox Err.Number & ", " & Err.Description, vbCritical, "Erro"
End Function
ESPERO TER AJUDADO
O VARIAVEL BANCO NESTA FUNÇÃO , ESTOU CHAMANDO DE DB1
Public Sub sbDB_CriaIndice(ByVal sTabela As String, ByVal sNomeIndice As String, _
ByVal sNomeCampo As String, ByVal blnChavePrimaria As Boolean, _
Optional ByVal sCampoSecundario As String)
On Error GoTo erro_
If Not fcDB_ExisteIndice(sTabela, sNomeIndice) Then 'FAB 27nov01
Dim tabTabela As TableDef
Dim indIndice As Index
Dim fldCampo As Field
Set tabTabela = DB1.TableDefs(sTabela)
Set indIndice = tabTabela.CreateIndex(sNomeIndice)
Set fldCampo = indIndice.CreateField(sNomeCampo)
indIndice.Fields.Append fldCampo
If sCampoSecundario <> "" Then
Set fldCampo = indIndice.CreateField(sCampoSecundario)
indIndice.Fields.Append fldCampo
End If
indIndice.Primary = blnChavePrimaria
tabTabela.Indexes.Append indIndice
Set fldCampo = Nothing
Set indIndice = Nothing
Set tabTabela = Nothing
End If
Exit Sub
erro_:
MsgBox Err.Number & ", " & Err.Description, vbCritical, "Erro"
End Sub
Public Function fcDB_ExisteIndice(ByVal sTabela As String, _
ByVal sNomeIndice As String) As Boolean
On Error GoTo erro_
Dim tabTabela As TableDef
Dim i As Integer
Set tabTabela = DB1.TableDefs(sTabela)
fcDB_ExisteIndice = False
For i = 0 To tabTabela.Indexes.Count - 1
If UCase(tabTabela.Indexes(i).Name) = UCase(sNomeIndice) Then
fcDB_ExisteIndice = True
Exit For
End If
Next i
Set tabTabela = Nothing
Exit Function
erro_:
MsgBox Err.Number & ", " & Err.Description, vbCritical, "Erro"
End Function
ESPERO TER AJUDADO
Tópico encerrado , respostas não são mais permitidas