Kopieren zonder (kolom naam) header

Status
Niet open voor verdere reacties.

ralluv

Gebruiker
Lid geworden
8 feb 2008
Berichten
68
Ik heb een formulier gemaakt met een subformulier. Het subformulier is een query en wordt gefilterd doormiddel van een keuzelijst op het formulier. Het subformulier laat vervolgens een lijst zien met productnummers, dus maar 1 kolom.

Het is helaas niet mogelijk in Access (voor zover ik weet) om meerdere records te selecteren als ik het subformulier instel als doorlopend formulier (ipv gegevensblad).
Ik kan nu maar 1 voor 1 de records selecteren en kopieren.

Wat ik graag wil is alle productnummers (gehele gefilterde tabel) in 1 keer te selecteren en te kopieren. Dit is mij al wel gelukt als ik het subformulier instel als gegevensblad (ik kan dan handmatig met het plusje alles selecteren en vervolgens ctrl c). Als ik het vervolgens kopieer dan wordt de kolom naam (header) meegekopieerd. Dit is uiteraard een ongewenste situatie want het programma die de productnummers 'leest' kan hier niet mee omgaan.

Hopelijk kunnen jullie mij hiermee verder helpen, mijn dank is in ieder geval groot want ik ben er al een lange tijd mee bezig en kan nergens op internet een antwoord vinden!
 
<Ctrl>+<C> is over het algemeen vrij zinloos als er niet ergens een <Ctrl>+<V> achteraan volgt. Waar wil je de gegevens in plakken? En is een export van de gegevens het subformulier niet makkelijker?
 
Het lijstje moet gekopieerd worden in SAP, dus exporteren naar bijvoorbeeld excel is hier niet de bedoeling. Uiteraard volgt in SAP de <ctrl> <v> om de gegevens te plakken.
 
Met behulp van een extra Bibliotheek (Microsoft Forms 2.0 (FM20.DLL) ) kun je gegevens naar het clipboard kopieëren:

Code:
Dim DataObj As New MSForms.DataObject
Dim S1 As String
Dim S2 As String
    
    S1 = "text string one"
    S2 = "text string two"
    With DataObj
        .SetText S1, "FormatId1"
        .PutInClipboard
        .SetText S2, "FormatId2"
        .PutInClipboard
        S1 = vbNullString
        S2 = vbNullString
        .GetFromClipboard
        S1 = .GetText("FormatId1")
        S2 = .GetText("FormatId2")
    End With
    Debug.Print S1
    Debug.Print S2

Dit voorbeeldje is nog niet bruikbaar, maar het gaat even om het idee. Je kunt op basis hiervan denk ik wel een recordset maken, die door de hele tabel/query heenloopt, en de gegevens toevoegt aan het Clipboarditem dat je wilt gebruiken. Vervolgens kun je dan in SAP wel weer normaal plakken.
Ik zal het idee nog wat verder uitwerken... (als ik weer tijd heb ;) )
 
Heel erg bedankt!! Ik zie zelf nog niet echt aan de code hoe ik hem zou moeten aanpassen om hem bruikbaar te maken in mijn geval. De gegevens voor mijn formulier zijn:
Naam subformulier: subfrm_new_intake
De kopieerknop: CopyButton

Ik neem in ieder geval aan dat ik de code in de onclick moet zetten van een knop. Alvast bedankt!:thumb:
 
Ik kan een standaardoplossing onder een knop maken, die zelf de naam van het formulier uitleest, zelf de recordbron van het formulier inleest, zelf de veldnamen inleest en op basis daarvan een recordset toekent aan een variabele, die vervolgens dan via de eerder vermelde truc de gegevens kopieert naar het clipboard. Als alles volgens de regeltjes verloopt, moet je dan met één plakactie de gegevens weer kunnen plakken.
Maar dat is dus de theorie.... :)
 
Michel ik heb nog gestoeid met bovenstaande code, maar ben er nog niet uitgekomen. Heb jij wellicht nog tijd gehad om er iets werkends van te maken? tnx
 
Zal er vandaag eens induiken...
 
Octafish is het nog gelukt om ernaar te kijken? Ik ben er nog een tijd mee bezig geweest, maar ik krijg niets fatsoenlijks uit. Ik zou echt heel dankbaar zijn als het lukt!
 
Het heeft even op een laag pitje gestaan :eek: Feestdagen en zo... Maar ik ben weer wakkergeschud.... Zal er weer induiken!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan