2013-04-19 1 views
2

Я изменил код, который увидел, который открывает шаблон слова и заполняет его, заменяя закладки текущей записью. Все работает нормально, пока я не попытаюсь написать контент из связанной (lookup) таблицы, например.Запись связанных данных таблицы в Word (из Access)

Таблица A:

ID 
Name 
Description 
JobType (lookup drop down list by JobTypeID in Table B) 

Таблица B:

JobTypeID 
JobType 

Форма C:

ID 
Name 
Description 
JobType 

Это все работает, как и планировалось в форме, и работает для большинства, когда я нажимаю a с:

'code for connecting to word and opening templates works fine *snip* 

With WordApp.Selection 
    .Goto what:=wdGoToBookmark, Name:="bmName" 
    .TypeText [Name] 

Но когда я использую:

With WordApp.Selection 
    .Goto what:=wdGoToBookmark, Name:="bmJobType" 
    .TypeText [JobType] 

он не записывает Thats тип задания, сохраненные в таблице или отображаться в выпадающем списке на форме .... он пишет JobTypeID (1,2 , 3,4 ....), используемых в ссылке.

Ive также попытался использовать me.JobTypeComboBox.value из формы, но это также отображает идентификатор. Может кто-нибудь указать мне в правильном направлении, пожалуйста.

ответ

1

Поле поиска сохраняет одно значение, но отображает другое значение. В вашем случае вам кажется, что вместо отображаемого значения отображается отображаемое значение. Есть два способа справиться с этим ...

  1. Используйте запрос, где вы INNER JOINТаблица B для Таблица A. Затем, включая [Table B].JobType в запросе SELECT, список должен предоставить вам то, что вы хотите.
  2. Используйте выражение DLookup для извлечения значения [Table B].JobType для текущего [Table A].JobType

ситуация сбивает с толку, потому что на самом деле [Table A].JobType число, которое соответствует [Table B].JobTypeID. И в [Table B] поле с именем JobType - это что-то еще ... возможно, текстовое поле.

Надеюсь, эти детали вам не смущают, чем они для меня. Если это было мое приложение, я бы переименовал [Table A].JobType в [Table A].JobTypeID и оставил его как простое числовое поле, а не поле поиска. И, вероятно, также создайте связь между двумя таблицами на основе JobTypeID.

+0

Я пошел на вариант 2, посмотрел на DLookup и решил пойти с: strJobTypeName = DLookup ("JobType", "Table B", "JobTypeID =" & [JobType]) –

Смежные вопросы