Du kan bruke DDESend-funksjonen til å starte en DDE-samtale (dynamisk datautveksling) med et annet program og sende et informasjonselement til programmet fra en kontroll i et skjema eller en rapport.
Du kan for eksempel bruke DDESend-funksjonen i controlsource-egenskapen for en tekstboks til å sende dataene som vises i tekstboksen, til en angitt celle i et Microsoft Office Excel 2007 regneark.
Syntaks
DDESend ( program, emne, element, data )
Syntaksen for funksjonen DDESend har følgende argumenter:
Argument |
Beskrivelse |
program |
En strenguttrykk identifisere et program som kan delta i en DDE-samtale. Programmet er vanligvis navnet på en .exe fil (uten .exe filtypen) for et Microsoft Windows-basert program, for eksempel Excel. Hvis du for eksempel vil starte en DDE-samtale med Excel, skriver du inn «Excel» for programargumentet . |
emne |
Et strenguttrykk som er navnet på et emne som gjenkjennes av programmet. Emneargumentet er ofte et dokument eller en datafil. Se dokumentasjonen for det andre programmet for en liste over mulige emner. |
element |
Et strenguttrykk som er navnet på en dataelement gjenkjent av programmet. Se dokumentasjonen for det andre programmet for en liste over mulige elementer. |
data |
En streng eller uttrykk som inneholder dataene som skal sendes til programmet. |
Kommentarer
DDESend-funksjonen starter en DDE-samtale med program og emne, og identifiserer elementet som dataelementet som skal motta data. Hvis programmet for eksempel er Excel, kan emnet være "Sheet1", og elementet kan være en rad-og-kolonne-ID, for eksempel "R1C1", eller navnet på et celleområde.
Dataargumentet angir informasjonen du vil sende. Det kan være en litteral streng, for eksempel "Report prepared by John", eller det kan være et uttrykk som inneholder resultatet av en funksjon som oppretter en streng, for eksempel "Prepared on " & Date(). Hvis elementet refererer til mer enn én bit med informasjon, for eksempel et navngitt område i et Excel-regneark som inneholder flere celler, sender DDESend-funksjonendata til den første oppføringen.
I eksemplet nedenfor sender DDESend-funksjonen strengen"Some text" til cellen i rad 1, kolonne 1 i et Excel-regneark. Du kan skrive inn dette uttrykket for en tekstbokskontroll i egenskapsboksen ControlSource på egenskapsarket for kontrollen:
=DDESend("Excel", "Sheet1", "R1C1", "Some text")
La oss si at du vil sende data fra en bundet kontroll i et Microsoft Office Access 2007 skjema til en celle i et Excel-regneark. ControlSource-egenskapen for den bundne kontrollen inneholder allerede et feltnavn eller uttrykk. Du kan opprette en annen tekstboks eller kombinasjonsboks og angi egenskapen ControlSource til et uttrykk, inkludert DDESend-funksjonen , der data er navnet på den bundne kontrollen. Hvis du for eksempel har en bundet tekstboks kalt LastName, kan du opprette en annen tekstboks og angi kontrollens ControlSource-egenskap til følgende:
=DDESend("Excel", "Sheet1", "R1C1", [LastName])
Denne mellomliggende kontrollen må enten være en tekstboks eller en kombinasjonsboks. Du kan ikke bruke navnet på en bundet kontroll som dataargument for en avmerkingsboks eller alternativgruppe.
Du kan bare bruke DDESend-funksjonen i egenskapsinnstillingen ControlSource for en tekstboks, alternativgruppe, avmerkingsboks eller kombinasjonsboks i et skjema. Du kan ikke kalle DDESend-funksjonen fra en Visual Basic for Applications (VBA)-modul.
Når du bruker DDESend-funksjonen , blir kontrollen skrivebeskyttet i skjemavisning og forhåndsvisning. Fordi egenskapen ControlSource også er skrivebeskyttet i skjemavisning og forhåndsvisning, må endringer i kontrollen gjøres i utformingsvisning.
Microsoft Windows og datamaskinens minne og ressurser bestemmer maksimalt antall DDE-samtaler som kan åpnes samtidig. Hvis samtalen ikke kan startes fordi programmet ikke kjører eller ikke gjenkjenner emnet , eller hvis maksimalt antall samtaler allerede er nådd, returnerer DDESend-funksjonen en Null.
Obs!: Det andre programmet kan være konfigurert til å ignorere forespørselen om en DDE-samtale. I så fall returnerer DDESend-funksjonen en Null. På samme måte kan du angi at Access skal ignorere forespørsler fra andre programmer: Klikk Alternativer for Access på Fil-menyen , og klikk deretter Avansert i dialogboksen Programinnstillinger . Velg Ignorer DDE-forespørsler under DDE-operasjoner.
Tips Hvis du trenger å manipulere objektene til et annet program fra Access, bør du vurdere å bruke automatisering.
Tabellen nedenfor illustrerer hvordan DDESend-funksjonen fungerer når du bruker den med hver av kontrollene.
Kontroll |
Merknader |
Tekstboks eller kombinasjonsboks |
Siden tekstboksen eller kombinasjonsboksen vises tom i skjemavisning og forhåndsvisning, kan det være lurt å angi egenskapen Visible til False. Dataargumentet kan referere til en annen kontroll. Følgende eksempel viser hvordan du kan sende innholdet i en kontroll kalt Etternavn til et Excel-regneark: =DDESend("Excel", "Sheet1", "R1C1", [LastName]) |
Alternativgruppe |
Ingen av alternativknappene i alternativgruppen er valgt i skjemavisning og forhåndsvisning. Det kan være lurt å gjøre alternativgruppen (og knappene) usynlige ved å angi egenskapen Synlig til Usann. Dataargumentet må inneholde numeriske data, for eksempel "2". Hvis dataargumentet ikke er numerisk, sender ikke DDESend-funksjonen informasjonen, og elementet endres ikke. |
Avmerkingsboks |
Avmerkingsboksen er skyggelagt i skjemavisning og forhåndsvisning. Du vil kanskje gjøre den usynlig ved å angi egenskapen Visible til False. Dataargumentet må inneholde numeriske data, for eksempel "2". Hvis dataargumentet ikke er numerisk, sender ikke DDESend-funksjonen informasjonen, og elementet endres ikke. |