|
Postada em 21/05/2004 14:58 hs
Caros colegas, estou com problemas na hora de abrir a tabela, tudo ocorre assim: tenho um form (frmEmpresa) onde usei para abrir a tabela desta forma: Dim AnoSel As Variant AnoSel = Empty Select Case MenuPat.Label1 Case "1" AnoSel = "Pat01.mdb" Case "2" AnoSel = "Pat02.mdb" Case "3" AnoSel = "Pat03.mdb" Case "4" AnoSel = "Pat04.mdb" Case "5" AnoSel = "Pat05.mdb" End Select 'cria a conexao com o banco de dados BancoEmp.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "" & AnoSel & "" CadTabela.CursorLocation = adUseServer CadTabela.Open "Select RazaoSocial, NomeFantasia, CNPJ, Ender, Cidade, UF, CEP, Email, Fone, NomeResp, CargoResp, ValorCor From CadEmpresa where CNPJ ='" & Text2.Text & "'", BancoEmp, adOpenForwardOnly, adLockReadOnly, adCmdText If CadTabela.BOF Then cmdnovo.Enabled = True cmdeditar.Enabled = False cmdexcluir.Enabled = False cmdsair.Enabled = True CadTabela.Close BancoEmp.Close Exit Sub Else Text3.Text = CadTabela("RazaoSocial") Text4.Text = CadTabela("NomeFantasia") Text5.Text = CadTabela("Ender") Text6.Text = CadTabela("Cidade") Text7.Text = CadTabela("UF") Text8.Text = CadTabela("CEP") Text9.Text = CadTabela("Email") Text10.Text = CadTabela("Fone") Text11.Text = CadTabela("ValorCor") Text12.Text = CadTabela("NomeResp") Text13.Text = CadTabela("CargoResp") CadTabela.Close BancoEmp.Close cmdnovo.Enabled = False cmdeditar.Enabled = True cmdexcluir.Enabled = True cmdsair.Enabled = True Exit Sub End If CadTabela.Close BancoEmp.Close End If End Sub
isso esta funcionando beleza, mas no cadastro dos bens (frmCadBens) o codigo é basicamente o mesmo mas nao dá certo, vejam: Dim EmpSel As Variant EmpSel = Empty Select Case MenuPat.Label1 Case "1" EmpSel = "Pat01.mdb" Case "2" EmpSel = "Pat02.mdb" Case "3" EmpSel = "Pat03.mdb" Case "4" EmpSel = "Pat04.mdb" Case "5" EmpSel = "Pat05.mdb" End Select 'cria a conexao com o banco de dados " & App.Path & "CodEmp.mdb" BancoBens.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "" & EmpSel & "" TabBens.CursorLocation = adUseServer TabBens.Open "Select Pat, Desc, Tipo, Local, Forn, Grupo, TAquis, TIncop, DtAquis, DtTransf, MotTransf, NrNtFiscal, DtNtFiscal, ValAquis, DatBaixa, MotBaixa From CadBens where Pat LIKE '%" & Trim(Text1.Text) & "%'", BancoBens, adOpenForwardOnly, adLockReadOnly, adCmdText If TabBens.BOF Then TabBens.Close BancoBens.Close cmdnovo.Enabled = True cmdeditar.Enabled = False cmdexcluir.Enabled = False cmdsair.Enabled = True Exit Sub Else Text2.Text = TabBens("Desc") Text11.Text = TabBens("Tipo") Text12.Text = TabBens("Local") Text13.Text = TabBens("Forn") Text14.Text = TabBens("Grupo") Text3.Text = TabBens("DtAquis") Text4.Text = TabBens("NrNtFiscal") Text5.Text = TabBens("ValAquis") Option1.Value = TabBens("TAquis") Option2.Value = TabBens("TIncorp") TabBens.Close BancoBens.Close cmdnovo.Enabled = False cmdeditar.Enabled = True cmdexcluir.Enabled = True cmdsair.Enabled = True Exit Sub End If TabBens.Close BancoBens.Close End If End Sub a mensagem de erro é: Run-time error '-2147467259 (80004005)': Method 'Open' of object '_Recordset' failed o que esta acontecendo, é a primeira vez que acontece isso, e eu sempre fiz desse jeito, alguem poderia me ajudar???? grato.
|
|
|
|
Shadow
|
SÃO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 21/05/2004 15:18 hs
Experimenta dar outro nome para o recordset, pode estar havendo uma tentativa de abertura com um recorset já aberto e de preferência, não abra duas vezes a conexão tb.
|
|
|
|
Postada em 24/05/2004 10:13 hs
alguem tem + alguma dica ai....?????
|
|
|
|
Postada em 25/05/2004 12:40 hs
e ai galera, como resolvo isso, esse problema so ocorrre no form de cadastro... sendo que o procedimento de abertura é o mesmo que eu uso... nunca havia acontecido isso, o gozado é que onde informo os campos: ( TabBens.CursorLocation = adUseServer TabBens.Open "Select Pat, Desc, Tipo, Local, Forn, Grupo, TAquis, TIncop, DtAquis, DtTransf, MotTransf, NrNtFiscal, DtNtFiscal, ValAquis, DatBaixa, MotBaixa From CadBens where Pat LIKE '%" & Trim(Text1.Text) & "%'", BancoBens, adOpenForwardOnly, adLockReadOnly, adCmdText ) se eu diminuir os campos ou seja .... Pat, Desc, Tipo, ou seja, colocar apenas 3 ele funciona, mas se eu colocar + de 3 ( Pat, Desc, Tipo, Local, Forn... ) dessa forma ele da a mensagem de erro. é isso que nao entendo... ?????
|
|
|
Ama
|
UBERLÂNDIA MG - BRASIL
|
|
Postada em 26/05/2004 03:44 hs
Tente mudar o tipo de cursor para adOpenKeySet ,adUseClient . E tente sempre usar Set rs.ActiveConnection = conexao antes de fazer rs.open cmd se a tabela for muito grande ela esta ficando duas vezes na memória, no mais revise cada aspa e virgula q tenho certeza que vai funcionar
|
|
|
|