|
Postada em 03/08/2006 15:27 hs
Galera, é o seguinte, tenho um sistema que gera um relatório direto do access, ou seja, o sistema conecta com o banco Access e abre o relatório feito direto no access, pois bem, a função que fiz funciona belezinha, mas com um problema, na primeira vez que mando abrir o relatorio ele abre beleza, mas na hora q eu fecho ele incrementa uma senha no banco de dados access, e não sei o pq esta acontecendo isso. na proxima vez q vou abrir, já não é possivel pois o banco esta protegido com senha.. alguem pode me explicar como que o access esta criando esta senha sempre no primeiro acesso ao relatorio, ou seja, sempre ocorre na primeira vez que estou utilizando e sempre na hora do fechamento da janela. abaixo segue o codigo que fiz para mostrar o relatorio do access
'Descrições das variaveis como parametro são: 'strDbName - Caminho do Banco de Dados 'NomeRelatorio - Nome do relatório a ser impresso no access
Function GeraRelatorio(strDbName As String, NomeRelatorio As String) As String
Dim RelatorioAccess As Object
If MsgBox("Deseja Vizualizar o Relatório antes de Imprimir?", vbYesNo, "Visualização") = vbYes Then Set RelatorioAccess = GetObject(strDbName, "Access.Application") strReportName = NomeRelatorio With RelatorioAccess .Visible = True .DoCmd.OpenReport strReportName, acViewPreview .DoCmd.Maximize End With Else Set RelatorioAccess = CreateObject("Access.Application") With RelatorioAccess .OpenCurrentDatabase FilePath:=strDbName .DoCmd.OpenReport ReportName:=NomeRelatorio End With MsgBox "Boletim impresso com Sucesso!", vbInformation End If End Function
--------------------------------- Valmir Ferreira Rocha Sistemas de Informação ---------------------------------
|
|
|
|
|
Postada em 03/08/2006 20:08 hs
Entre em modo exclusivo no seu BD e defina uma senha, depois:Private Sub IMPRIMIR_Click()strDbName = "C:ALUNOSBanco_Escola.mdb"MSG_IMPRIMIR = MsgBox("Deseja vizualizar o Boletim antes de Imprimir?", vbYesNoCancel, "Sistema Alunos") If MSG_IMPRIMIR = vbYes Then Set RelatorioAccess = GetObject(strDbName, "Access.Application") strReportName = "ALUNO" With RelatorioAccess .Visible = True .DoCmd.OpenReport strReportName, acViewPreview, "" .DoCmd.Maximize End With Else If MSG_IMPRIMIR = vbCancel Then Exit Sub Else Set RelatorioAccess = CreateObject("Access.Application") With RelatorioAccess .OpenCurrentDatabase filepath:="C:ALUNOSBanco_Escola.mdb", bstrPassword:=" sua senha " 'Coloque aki a senha do Banco .DoCmd.OpenReport ReportName:="ALUNO" End With MsgBox "Boletim impresso com Sucesso!", vbInformation, "Sistema Alunos" End If End IfEnd Subhehe...
.:Rodrigo Bedin:.
|
|
|
|
|
|
Postada em 04/08/2006 09:40 hs
Amigo, neste codigo q me passou vc esta verificando a senha na impressão, e o meu problema esta na visualização, fiz diversos teste, e constatei q apartir do momento q entra nesse codigo With RelatorioAccess .Visible = True .DoCmd.OpenReport strReportName, acViewPreview, "" .DoCmd.Maximize End With
a senha é criada, pois qdo .DoCmd.Maximize posso olhar no banco que já esta com restrição de senha, se eu fechar, na proxima vez q abrir ele pedirá senha.
fiz varios teste tipo, desconectando o banco antes de abrir o relatório, e da na mesma., qdo eu defino uma senha para o banco de dados, eu preciso fazer a conecção, como faz quando ele tem senha.
--------------------------------- Valmir Ferreira Rocha Sistemas de Informação ---------------------------------
|
|
|
|
Postada em 04/08/2006 11:23 hs
DAO Sub DAOAbrirBDProtegido() Dim DB As DAO.Database
'O parâmetro pwd (q é a senha - 4o parâmetro) é case 'sensitive (diferencia A de a) e - ao contrário do que 'diz a documentação do VB - os parâmetros exclusive e 'read-only (2o e 3o parâmetros) devem ser falsos. Set DB DBEngine.OpenDatabase(App.Path & "SeuBD.MDB", _ False, False, ";pwd=senha") DB.Close End Sub
ADO Sub ADOAbrirBDProtegido() Dim CNN As New ADODB.Connection CNN.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & App.Path &"SeuBD.MDB;Jet " & _ "OLEDB:Database Password=senha;" CNN.Close End Sub
'no codigo.. With RelatorioAccess .OpenCurrentDatabase filepath:="C:Banco_Escola.mdb", bstrPassword:="senha "
Onde "senha" é a sua senha. Quer dizer, subistitua "senha" pela senha do banco de dados.
fmz?!
.:Rodrigo Bedin:.
|
|
|
|