ALTERAR CONSULTA ACCESS VIA ADO
Saudações ,
Bom pessoal, estou usando um código que peguei aqui no fórum pra alterar uma consulta do access, acontece que não está funcionando. Erro 3251: Object or provider is not capable of perfoming requested operation.
Agradeço as ajudas!!
Bom pessoal, estou usando um código que peguei aqui no fórum pra alterar uma consulta do access, acontece que não está funcionando. Erro 3251: Object or provider is not capable of perfoming requested operation.
Agradeço as ajudas!!
Dim cn As ADODB.Connection
Dim adCat As ADOX.Catalog
Dim adCmd As ADODB.Command
Set cn = New ADODB.Connection
cn.Open "DSN=SBC;", , "sbc2004"
Set adCat = New ADOX.Catalog
Set adCat.ActiveConnection = cn
Set adCmd = New ADODB.Command
adCmd.CommandText = "SELECT PCFDetalhes.CódigoDoProduto, Sum(PCFDetalhes.Quantidade) AS SomaDeQuantidade " & _
"FROM PCF INNER JOIN PCFDetalhes ON PCF.CodPCF = PCFDetalhes.CodPCF " & _
"WHERE (((PCF.Data) >= #" & Format(dtpData1, "MM/DD/YYYY") & "# And (PCF.Data) <= #" & Format(dtpData2, "MM/DD/YYYY") & "# )) " & _
"GROUP BY PCFDetalhes.CódigoDoProduto " & _
"HAVING (((PCFDetalhes.CódigoDoProduto)=1));"
adCat.Views("VendaP13").Command = adCmd.CommandText
Para criar uma consulta no Access (ou VIEW - expressão utilizada em outros bancos) via ADO utilize o método Execute da classe Connection no objeto ADODB:
dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "DSN=SBC;", , "sbc2004"
cnn.Execute "CREATE VIEW VendaP13 AS SELECT PCFDetalhes.CódigoDoProduto, Sum(PCFDetalhes.Quantidade) AS SomaDeQuantidade " & _
"FROM PCF INNER JOIN PCFDetalhes ON PCF.CodPCF = PCFDetalhes.CodPCF " & _
"WHERE (((PCF.Data) >= #" & Format(dtpData1, "MM/DD/YYYY") & "# And (PCF.Data) <= #" & Format(dtpData2, "MM/DD/YYYY") & "# )) " & _
"GROUP BY PCFDetalhes.CódigoDoProduto " & _
"HAVING (((PCFDetalhes.CódigoDoProduto)=1)), , adCmdText
Estamos quase lá José!! A tua dica funcionou, mas digamos que a view a ser criada já exista e apenas gostaria de modifica-la? ou entao exluir e criar novamente, como podemos fazer?
Abraço,
[S23]
Abraço,
[S23]
Não creio que o Access reconheça ALTER VIEW, sendo assim, utilize a sequência DROP e CREATE.
dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "DSN=SBC;", , "sbc2004"
cnn.Execute "DROP VIEW VendaP13", , adCmdText
cnn.Execute "CREATE VIEW VendaP13 AS SELECT PCFDetalhes.CódigoDoProduto, Sum(PCFDetalhes.Quantidade) AS SomaDeQuantidade " & _
"FROM PCF INNER JOIN PCFDetalhes ON PCF.CodPCF = PCFDetalhes.CodPCF " & _
"WHERE (((PCF.Data) >= #" & Format(dtpData1, "MM/DD/YYYY") & "# And (PCF.Data) <= #" & Format(dtpData2, "MM/DD/YYYY") & "# )) " & _
"GROUP BY PCFDetalhes.CódigoDoProduto " & _
"HAVING (((PCFDetalhes.CódigoDoProduto)=1)), , adCmdText
Beleza José!! Funcionou bonitasso!!
Valeu a força, bom fim de semana!!
[S42][S42][S42]
Valeu a força, bom fim de semana!!
[S42][S42][S42]
Tópico encerrado , respostas não são mais permitidas