MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido] Recordset como Fonte de Registro em SubFormulário

    Compartilhe

    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 139
    Registrado : 11/12/2015

    [Resolvido] Recordset como Fonte de Registro em SubFormulário

    Mensagem  Gabriel Brunichaki em Ter 10 Maio 2016, 21:00

    Boa tarde!

    Estou tentando desenvolver uma aplicação em Access 2013 32bits com banco de dados MySQL (localhost). Consigo gerar um Recordset sem problemas (teste com Debug.Print), mas não sei como colocar esse Recordset criado como Fonte de Registro de um Subformulário em modo Folha de Dados. Tenho o seguinte código:

    Private Sub Form_Open(Cancel As Integer)
       Dim strSQL As String
       Dim conn As New Connection
       Dim rs As New Recordset
       
       conn.Open "DRIVER={MySQL ODBC 5.2 Unicode Driver}; Server=localhost;Database=idee;User=root;Password='';Option=3;"
       
       With rs
           Set .ActiveConnection = conn
           .Source = "SELECT * FROM tbl_requester;"
           .LockType = adLockOptimistic
           .CursorType = adOpenKeyset
           .Open
       End With
       
       Me.Recordource = rs
       
       rs.Close
       Set rs = Nothing
       
       conn.Close
       Set conn = Nothing
    End Sub


    Mas não tem jeito dos registros aparecerem, dá erro na linha em negrito... Alguém tem alguma ideia?


    .................................................................................
    “Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos.”
    – Albert Einstein

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: [Resolvido] Recordset como Fonte de Registro em SubFormulário

    Mensagem  Avelino Sampaio em Qua 11 Maio 2016, 08:34

    Olá!

    veja se este tópico ajuda :

    [Você precisa estar registrado e conectado para ver este link.]

    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 139
    Registrado : 11/12/2015

    Re: [Resolvido] Recordset como Fonte de Registro em SubFormulário

    Mensagem  Gabriel Brunichaki em Qua 11 Maio 2016, 14:22

    Bom dia Avelino!

    Cara, foi tu que inventou esse tal de VBA, né!? Só pode ter sido! 'hahaha

    Passei o dia TODO ontem vasculhando sites e testando códigos, mas não achei nada. Entrei no teu site, adaptei o código disponibilizado e em dois minutos consegui o que eu queria!! Maravilha! Além de conseguir setar o Recordset no subformulário, ainda consigo adicionar, editar e excluir direto por ali.

    Deixo o código adaptado:

    Código:
    Private Sub Form_Open(Cancel As Integer)

        Dim strConnect As String
        Dim strProvider As String
        Dim strDataSource As String
        Dim strDataBaseName As String
        Dim usr_id As String
        Dim pass As String
        Dim mySqlIP As String
        
        mySqlIP = "localhost"
        strDataBaseName = "idee"
        usr_id = "root"
        pass = ""
        strConnect = "driver={MySQL ODBC 5.2 Unicode Driver};server=" & mySqlIP & ";uid=" _
        & usr_id & ";pwd=" & pass & ";database=" & strDataBaseName
        
        Set adoDataConn = New ADODB.Connection
        
        adoDataConn.CursorLocation = adUseClient
        
        adoDataConn.Open strConnect
        
        Set rsMySQL = New ADODB.Recordset
        rsMySQL.CursorType = adOpenStatic
        rsMySQL.CursorLocation = adUseClient
        rsMySQL.LockType = adLockPessimistic
        rsMySQL.Source = "SELECT * FROM tbl_requester"
        rsMySQL.ActiveConnection = adoDataConn
        rsMySQL.Open
            
        Set Me.Recordset = rsMySQL
        
        Me.txt1.ControlSource = "CodRequester"
        Me.txt2.ControlSource = "NameRequester"
        
    End Sub

    Retirei o código daqui.

    Valeu a ajuda, tópico resolvido.
    Abraço!


    .................................................................................
    “Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos.”
    – Albert Einstein

      Data/hora atual: Sex 09 Dez 2016, 11:32