|
Postado Originalmente por romulo
Basta fazer assim:
OpenDatabase("c:\caminho\bd.mdb", False, False, ";pwd=senha") |
|
Postado Originalmente por GBastos
Com o set?
Assim? Set dbDestino = OpenDatabase(txtBasePrincipal.Text, False, False, "pwd=SENHA") Já tentei e dá: ... |
|
Postado Originalmente por romulo
Você esqueceu do ponto e vírgula:
";pwd=SENHA" |
Private Sub Comando0_Click() Dim dbOrigem As Database Dim tbOrigem As Recordset Dim dbDestino As Database Dim tbDestino As Recordset Dim CodCedente As String Dim I As Integer txtBasePrincipal.SetFocus Set dbDestino = OpenDatabase(txtBasePrincipal.Text, False, False, ";pwd=SENHA") txtBaseVinculado.SetFocus Set dbOrigem = OpenDatabase(txtBaseVinculado.Text, False, False, ";pwd=SENHA") Set tbDestino = dbDestino.OpenRecordset("tbCedentes") Set tbOrigem = dbOrigem.OpenRecordset("tbCedentes") CodCedente = VerificaCodCedente(tbOrigem!Agencia, tbOrigem!Operacao, tbOrigem!Conta, tbDestino) If StrComp(CodCedente, "0") = 0 Then MsgBox Title:="Erro!", Prompt:="Copie primeiro os dados do convênio (tbCedentes) para a base do convênio principal" Exit Sub End If Set tbDestino = dbDestino.OpenRecordset("tbParCedente") Set tbOrigem = dbOrigem.OpenRecordset("tbParCedente") If Parametros.InSelection Then Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 36 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop End If Set tbDestino = dbDestino.OpenRecordset("tbSacado") Set tbOrigem = dbOrigem.OpenRecordset("tbSacado") If Sacados.InSelection Then Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 64 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop End If Set tbDestino = dbDestino.OpenRecordset("tbTitulos") Set tbOrigem = dbOrigem.OpenRecordset("tbTitulos") If Titulos.InSelection Then Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 64 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop End If Set tbDestino = dbDestino.OpenRecordset("tbRetorno") Set tbOrigem = dbOrigem.OpenRecordset("tbRetorno") If Retornos.InSelection Then Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 64 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop End If Set tbDestino = dbDestino.OpenRecordset("tbRemessa") Set tbOrigem = dbOrigem.OpenRecordset("tbRemessa") If Remessas.InSelection Then Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 64 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop End If Set tbDestino = dbDestino.OpenRecordset("tbGrupos") Set tbOrigem = dbOrigem.OpenRecordset("tbGrupos") If Grupos.InSelection Then Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 64 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop End If dbDestino.Close dbOrigem.Close End Sub Function VerificaCodCedente(Agencia, Operacao, Conta As String, tbDestino As Recordset) As String Result = "0" With tbDestino Do Until ((.EOF) Or (StrComp(Result, "0") <> 0)) .Edit If StrComp(!Agencia, Agencia) = 0 Then If StrComp(!Operacao, Operacao) = 0 Then If StrComp(!Conta, Conta) = 0 Then Result = !CodCedente End If End If End If Loop End With End Function
|
Postado Originalmente por GBastos
Cara, por causa de um ponto e virgula... Ja estou revendo minha opiniao sobre VB...
Funcionou mas ele está trav... |
Function VerificaCodCedente(Agencia, Operacao, Conta As String, tbDestino As Recordset) As String Dim Result as String Result = "0" With tbDestino Do Until ((.EOF) Or (StrComp(Result, "0") <> 0)) If StrComp(!Agencia, Agencia) = 0 Then If StrComp(!Operacao, Operacao) = 0 Then If StrComp(!Conta, Conta) = 0 Then Result = !CodCedente End If End If End If .MoveNext '<--!!!!!! Loop End With VerificaCodCedente = Result End Function
|
Postado Originalmente por romulo
Cara, antes de relacionar os recordsets a outra tabela, é melhor fechar antes. Recomendo que você abra o origem como ...
|
|
Postado Originalmente por GBastos
Foi mal, esqueci do MoveNext.. :lol:
Fiz as modificações, mas inexplicavelmente ele dá erro no update do primeiro ... |
Do Until tbOrigem.EOF tbDestino.AddNew tbDestino.Fields(0) = CodCedente For I = 1 To 64 tbDestino.Fields(I) = tbOrigem.Fields(I) Next I tbDestino.Update Loop
|
Postado Originalmente por GBastos
Já descobri o erro acima, tinha viajado total e botado o update dentro do for... :lol:
Porém no segundo for dá o me... |
|
Postado Originalmente por romulo
Cara, atualiza o código colocando as tuas alterações, pra ver como tá agora.
|
|
Postado Originalmente por GBastos
Consegui!
Hehehehehehe Quando eu ganhar na Mega Sena, 1 milhao vai pra vc! :l... |
|
Postado Originalmente por romulo
Para procurar o arquivo pode usar a função "Dir". Pra marcar e desmarcar a checkbox, basta fazer o value = true ou fa...
|
|
Postado Originalmente por GBastos
Valeu, consegui com o value...
Agora, existe uma função que pegue uma string e verifique se tem outra dentro desta? ... |
|
Postado Originalmente por GBastos
Valeu!
A ultima dúvida, vc sabe como utilizar o componente barra de progresso do Access? Não achei absolutamente n... |
ops:
|
Postado Originalmente por GBastos
É do activex, valeu!
Outra coisa, existe uma funçao que retorno a quantidade de campos de um registro? |
|
Postado Originalmente por romulo
Recordset.Fields.Count
|
|
Postado Originalmente por GBastos
Beleza, ja adaptei.
Agora outra coisa, notei que o Dir devolve somente o nome do arquivo, mas eu preciso tb do pat... |