MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Referência a biblioteca Área de Transferência do Windows

    avatar
    jamesresplandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 15
    Registrado : 25/07/2010

    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty [Resolvido]Referência a biblioteca Área de Transferência do Windows

    Mensagem  jamesresplandes 14/3/2019, 19:27

    Gostaria de saber qual a referência que devo usar para transferir um texto para Área de Transferência do Windows?
    Achei esse código na net para copiar o texto, ocorre que precisa fazer referência a uma biblioteca e eu não estou achando.
    Estou usando o Access 2013.

    Sub Colocar1()
       
       Dim dtobj As MSForms.DataObject
       Set dtobj = New MSForms.DataObject
       
       Dim s As String
       s = "Benzadeus!"
       dtobj.SetText s
       dtobj.PutInClipboard

    End Sub
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty Re: [Resolvido]Referência a biblioteca Área de Transferência do Windows

    Mensagem  DamascenoJr. 14/3/2019, 21:52

    bem simples
    Código:
    Me!Texto0.SetFocus 'movendo o foco para o campo que contém o texto
        Me!Texto0.SelStart = 0 'colocando o ponteiro no início do texto
        Me!Texto0.SelLength = Len(Me!Texto0.Value) 'mandando selecionar a quantidade de caracteres que o texto tem, ou seja, o texto todo
        DoCmd.RunCommand acCmdCopy 'dando o famosão Ctrl + C, deixando o texto na área de transferência


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    jamesresplandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 15
    Registrado : 25/07/2010

    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty Re: [Resolvido]Referência a biblioteca Área de Transferência do Windows

    Mensagem  jamesresplandes 14/3/2019, 23:40

    Muito obrigado por responder tão rapidamente,

    mas o meu propósito é copiar o conteúdo de uma variável tipo string (mas pode ser qualquer tipo) para a área de transferência. Tem como fazer isso?
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty Re: [Resolvido]Referência a biblioteca Área de Transferência do Windows

    Mensagem  DamascenoJr. 15/3/2019, 01:06

    Crie um novo módulo global e coloque um nome apropriado e cole o código abaixo nele
    Código:
    Option Compare Database
    Option Explicit

    Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hWnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
    Private Declare Function CloseClipboard Lib "user32.dll" () As Long
    Private Declare Function SetClipboardData Lib "user32.dll" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
    Private Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long

    Public Sub SetClipboard(sUniText As String)
        Dim iStrPtr As Long
        Dim iLen As Long
        Dim iLock As Long
        Const GMEM_MOVEABLE As Long = &H2
        Const GMEM_ZEROINIT As Long = &H40
        Const CF_UNICODETEXT As Long = &HD
        OpenClipboard 0&
        EmptyClipboard
        iLen = LenB(sUniText) + 2&
        iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen)
        iLock = GlobalLock(iStrPtr)
        lstrcpy iLock, StrPtr(sUniText)
        GlobalUnlock iStrPtr
        SetClipboardData CF_UNICODETEXT, iStrPtr
        CloseClipboard
    End Sub

    Aí então é só chamar o procedimento que o texto irá para área de transferência
    Código:
    Call SetClipboard("Um texto qualquer")

    ou
    Código:
    Call SetClipboard(NomeDeUmaVariável)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    jamesresplandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 15
    Registrado : 25/07/2010

    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty Resolvido

    Mensagem  jamesresplandes 20/3/2019, 19:58

    Obrigado IvanJr,

    Fiz o teste com esse código, deu muito certo... valeu pela atenção!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty Re: [Resolvido]Referência a biblioteca Área de Transferência do Windows

    Mensagem  DamascenoJr. 20/3/2019, 22:18

    Sucesso. Obrigado pelo retorno. O fórum agradece.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado


    [Resolvido]Referência a biblioteca Área de Transferência do Windows Empty Re: [Resolvido]Referência a biblioteca Área de Transferência do Windows

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 14:11