2014-09-29 3 views
-1

Поэтому я хочу сохранить значение в строке и добавить 1 к этому значению, прежде чем поместить его в базу данных. Основном что-то вроде этого:Доступ и VB, сохранение значения в строке

Dim sqlQuery As String 
Dim lastEntry As String 
Dim newEntry As String'this is lastEntry+1 
sqlQuery = "SELECT MAX(ID) AS lastID FROM table" 'I selected the highest ID from database 

Как я могу назначить, что выбранное значение в строку lastEntry, а затем добавить 1 к этому значению перед сохранением его как newEntry?

В последнем шаге, я должен использовать что-то вроде этого:

dbtable("ID").Value = newEntry 

Спасибо за любую помощь! :)

Благодарим за помощь.

+0

Ваш вопрос сбивает с толку. Почему вы сохраняете числа в строках? Один вопрос за раз. Проведите некоторое исследование, чтобы выяснить, какие легкие. – Steve

+0

Чтобы избежать путаницы, каждое значение в базе данных является строкой. Я использую функцию RegExp для сохранения значений из загружаемого файла. Сначала у меня было поле AutoNumber для ID, но это не сработало, когда я импортировал некоторые данные. Вот почему я хочу программно создать идентификационные номера, установить новую запись для последнего идентификатора из базы данных + 1. Моя проблема в том, что я не знаю, как сохранить значение, которое я получаю из SQL-запроса? – NejcZ

+0

1-Becarfull при запросе MAX() на строке, которую вы считаете номером. (2 больше 123456789) 2-Что вы подразумеваете под «значением хранилища, которое я получаю из SQL-запроса»? Вы хотите, чтобы вы сохранили его в таблице в базе данных или вы имеете в виду, что не знаете, как получить его в переменной в VB, чтобы вы могли работать с ним? – Steve

ответ

0

Ниже приведен пример вставки данных в таблицу, где идентификатор - ТЕКСТ, но вы хотите получить максимальное значение (не как текст), а затем вставить в эту таблицу.

INSERT INTO Table1 (ID,Field1) 
SELECT TOP 1 MAX(VAL(ID)) + 1 as NextId, "Test" as Field1 
FROM Table1; 

Главное, чтобы заметить здесь, что я сделал VAL() на ID, так что рассматривается как число, прежде чем получить MAX(). Как я уже сказал в своих комментариях, текстовое значение 2 больше, чем все, что начинается с 1. Это означает, что 2 больше 123 456 при просмотре в виде текста.

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