Du kan bruke DDESend-funksjonen til å starte en dynamisk datautvekslingssamtale (DDE) med et annet program og sende et informasjonselement til dette programmet fra en kontroll i et skjema eller en rapport.
Du kan for eksempel bruke DDESend-funksjonen i egenskapen ControlSource for en tekstboks til å sende dataene som vises i tekstboksen, til en bestemt celle i et Microsoft Office Excel 2007 regneark.
Syntaks
DDESend ( program, emne, element, data )
Syntaksen for funksjonen DDESend har disse argumentene:
Argument |
Beskrivelse |
program |
En strenguttrykk som identifiserer et program som kan delta i en DDE-samtale. Vanligvis er programmet navnet på en EXE-fil (uten filtypen EXE) for et Microsoft Windows-basert program, for eksempel Excel. Hvis du for eksempel vil starte en DDE-samtale med Excel, skriver du inn «Excel» som programargument. |
emne |
Et strenguttrykk som er navnet på et emne som gjenkjennes av programmet. Argumentet emne er ofte et dokument eller en datafil. Se i dokumentasjonen for det andre programmet for en liste over mulige emner. |
element |
Et strenguttrykk som er navnet på en dataelement som gjenkjennes av programmet. Se i dokumentasjonen for det andre programmet for en liste over mulige elementer. |
data |
En streng uttrykk inneholder dataene som skal sendes til programmet. |
Kommentarer
DDESend-funksjonen starter en DDE-samtale med program og emne ogidentifiserer elementet som dataelementet som skal motta data. Hvis for eksempel programmet er Excel, kan emnet være "Sheet1", og elementet kan være en rad-og-kolonne-identifikator, 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 element refererer til mer enn én bit 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 angi dette uttrykket for en tekstbokskontroll i egenskapsboksen ControlSource på kontrollens egenskapsark:
=DDESend("Excel", "Sheet1", "R1C1", "Some text")
La oss si at du vil sende data fra bundet kontroll et Microsoft Office Access 2007 skjema til en celle i et Excel-regneark. Kontrollkildeegenskapen for den bundne kontrollen inneholder allerede et feltnavn eller uttrykk. Du kan opprette en annen tekstboks eller kombinasjonsboks og angi controlSource-egenskapen til et uttrykk som inkluderer DDESend-funksjonen, der data er navnet på den bundne kontrollen. Hvis du for eksempel har en bundet tekstboks kalt Etternavn, kan du opprette en annen tekstboks og angi controlSource-egenskapen til følgende:
=DDESend("Excel", "Sheet1", "R1C1", [LastName])
Denne mellomliggende kontrollen må 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 VBA-modul (Visual Basic for Applications).
Når du bruker DDESend-funksjonen, blir kontrollen skrivebeskyttet i skjemavisning 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 emne, eller hvis maksimalt antall samtaler allerede er nådd, returnerer DDESend-funksjonen en Null.
Obs!: Det andre programmet kan konfigureres til å ignorere forespørselen for en DDE-samtale. Hvis det er det, 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ørslerunder DDE-operasjoner.
Tips! Hvis du må manipulere objekter fra Access i et annet program, bør du vurdere å bruke automatisering.
Tabellen nedenfor illustrerer hvordan DDESend-funksjonen oppfører seg 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 Synlig-egenskapen til Usann. 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. Du vil kanskje gjøre alternativgruppen (og tilhørende knapper) usynlig ved å angi Synlig-egenskapen 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 synlig egenskap til False. Dataargumentet må inneholde numeriske data, for eksempel "2". Hvis dataargumentet ikke er numerisk, sender ikke DDESend-funksjonen informasjonen, og elementet endres ikke. |