Public Sub CopyRecord(AccessArrayRecordNum As Long, AccessArrayTable As Variant)'Заполнить строку в базе данных входящими параметрами'AccessArrayTable - таблица данных из Access'AccessArrayRecordNum - порядковый номер строки из базы данных Access, для которого выполнется запись в MySQLDim Command As ObjectSet Command = CreateObject("ADODB.Command")Set Command.ActiveConnection = ConnCommand.CommandType = 4 'ПроцедураCommand.NamedParameters = False 'Параметры поименованныеCommand.commandtext = "SetRecord" 'Хранимая процедура на добавление или обновление записи в таблицуCommand.Parameters.Append Command.CreateParameter("varID", 19, 1) 'Создаем параметр adUnsignedInt(19), 1-входнойWith Command.Parameters("varID") .Value = AccessArrayTable(0, AccessArrayRecordNum)End WithCommand.Parameters.Append Command.CreateParameter("varPayment", 17, 1) 'Создаем параметр adUnsignedTinyInt(17), 1-входнойWith Command.Parameters("varPayment") .Value = CByte(AccessArrayTable(1, AccessArrayRecordNum))End WithCommand.Parameters.Append Command.CreateParameter("varAnalyse_Date", 133, 1) 'Создаем параметр adDBDate(133), 1-входнойWith Command.Parameters("varAnalyse_Date") .Value = AccessArrayTable(2, AccessArrayRecordNum)End WithCommand.Parameters.Append Command.CreateParameter("varNotes", 129, 1, 254) 'Создаем параметр adChar(129), 1-входнойWith Command.Parameters("varNotes") If IsNull(AccessArrayTable(21, AccessArrayRecordNum)) Then .Value = "" Else .Value = AccessArrayTable(21, AccessArrayRecordNum) End IfEnd WithCommand.ExecuteSet Command = NothingEnd Sub
Public Sub OpenDB()'Открыть соединение с базой данных на сайте'Для успешной работы объекта предварительно требуется инсталляция ODBC MySQL Connector Driver'Драйвер скачивается https://dev.mysql.com/downloads/connector/odbc/'Для офиса 2003 разрядность драйвера 32bit не зависимо от разрядности Windows'Правильное название драйвера при проиписывании строки-коннекта можно'найти после инсталляции в ветке реестра'HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers\Dim ConnString ' Строка для коннектаDim Driver As StringDriver = "DRIVER={MySQL ODBC 8.0 Unicode Driver}" 'Драйвер для коннекта. Имя/версию драйвера приписать в фигурных скобкахSet Conn = CreateObject("ADODB.Connection")ConnString = Driver & ";" & _ "SERVER=" & ServerDB & ";" & _ "PORT=" & PortDB & ";" & _ "DATABASE=" & NameDB & ";" & _ "UID=" & UserDB & ";" & _ "PWD=" & PasswordDB & ";"Conn.ConnectionTimeout = 5 'Время до обрыва ожидания соединенияConn.Open ConnStringEnd Sub
Command.Parameters.Append Command.CreateParameter("varNotes", 129, 1, 254) 'Создаем параметр adChar(129), 1-входнойWith Command.Parameters("varNotes") If IsNull(AccessArrayTable(21, AccessArrayRecordNum)) Then .Value = "" Else .Value = Chr(34) & AccessArrayTable(21, AccessArrayRecordNum) & Chr(34) End IfEnd With
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET NAMES utf8 */;/*!50503 SET NAMES utf8mb4 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;DELETE FROM AutocatPrice; /*!40000 ALTER TABLE `AutocatPrice` DISABLE KEYS */;INSERT INTO AutocatPrice (`ID`, `Payment`, `Analyse_Date`, `Brand`, `Model`, `Engine_Type`, `Engine_Size`, `Engine_Name`, `Year_First`, `Year_Last`, `Serial`, `Mass`, `Cat_Type`, `Pt`, `Pd`, `Rh`, `PricePerKg`, `Total_Price`, `Company`, `URL`, `Method`, `Notes`) VALUES (1, 0, '2018-09-05', 53, NULL, NULL, NULL, NULL, NULL, NULL, 'KBA17001 / RFK-TT-20 / A', '0.70', 4, NULL, NULL, NULL, '67', '47', 1, NULL, 5, NULL), (2, 0, '2018-10-03', 53, NULL, NULL, NULL, NULL, NULL, NULL, 'KBA17012', '1.50', 4, NULL, NULL, NULL, '67', '100', 1, NULL, 5, NULL)