Это общая проблема.
В запросе на обновление в Access все столбцы в любом запросе, включая подзапросы, но исключая пункты EXISTS
, должны быть обновляемыми.
Так как вы вычисляете Amounts.Amt_fcy*Fx_rates.Rate
в подзапросе, и это не подлежит обновлению, запрос не выполняется.
Этот запрос может быть переписан для выполнения этого вычисления в основном запросе, и в то же время работать намного быстрее:
Update Amounts
Left join Fx_rates on Amounts.Data=Fx_rates.Data
set Amt_lcy = Amounts.Amt_fcy*Fx_rates.Rate
Нет, я так не думаю - InnoSetup явно НЕ установщик на основе MSI.
Сначала вам нужно будет правильно удалить старую установку на основе MSI, используя, например, msiexec / X (код продукта или имя файла MSI), а затем вы можете установить новое, используя InnoSetup.
Чтобы установить файл .MSI из установки Inno Setup, попробуйте следующие строки:
[Files]
Source: "Your-MSI-File.msi"; DestDir: "{tmp}"
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\Your-MSI-File.msi"""
Кредиты для Alex Yackimoff http://www.jrsoftware.org/iskb.php?msi
Не рекомендуется отказываться от установщика Windows. inno setup - это устаревшая технология установки.
лучше оставайтесь на своем msi, они необходимы для логотипа Windows и являются гарантией будущего.
если вам нужен бесплатный инструмент для создания msi или вам нужно что-то, что интегрируется в продолжает интеграцию, а затем взгляните на WIX.