powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите составить алгоритм
8 сообщений из 8, страница 1 из 1
Помогите составить алгоритм
    #39456831
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице имеется поле с записями типа
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Code
AAA
AAB
AAC
AAD
AAE
AAF
AAG 


------------------------------------------------------------------------
Как программно заполнять это поле?
Как написать алгоритм заполнения этого поля автоматически?
то есть
Находить последнюю строку
и дополнять .
Например далее:
AAI
Далее
AAJ
При заполнении последней позиции, перейти ко второй
ABA
ABB
ABC
ABD
ABE
ABF
-------------------
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39456833
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Таблица с одним полем - с буквами алфавита.
2. Запрос на декартово множество 3 экземпляров этой таблицы, с конкатенацией в трех буквенное слово,
с сортировкой по возрастанию.
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39456838
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,

Я понял что с сортировкой по возрастанию.
Спасибо.
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39456870
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

посмотри, может подойдет

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Function next_code(pval As Variant) As Variant
 Const ci_A As Integer = 65
 Const ci_Z As Integer = 90
 Dim s3char As String * 3
 Dim i As Long, ichar As Integer, bshift As Boolean
 
 s3char = Mid(pval, 1, 3)
 
 For i = 3 To 1 Step -1
   ichar = Asc(Mid$(s3char, i, 1))
   If ichar < ci_Z Then
     Mid$(s3char, i, 1) = Chr(ichar + 1)
     bshift = False
   Else
     Mid$(s3char, i, 1) = Chr(ci_A)
     bshift = True
   End If
   
   If Not bshift Then
     Exit For
   End If
 Next
 next_code = s3char
End Function
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39456913
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

Спасибо
У меня тоже на подобии получилось.
=========================

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Public Function FUN_STR_LITERA_ZNACHENIE() As String
'Расчёт Code в таблице GoodsGroups
Dim STR_LITERA As Integer ' 65 - 90
Dim STR_COLUMN As Integer   ' 3 - 1
Dim STR_NEW As String  ' новое значение

   On Error GoTo FUN_STR_LITERA_ZNACHENIE_Error
'-----------------------------------------------------------------------------
STR_NEW = ""

    If DCount("Code", "GoodsGroups", "[code] = 'AAA'") = 0 Then
       FUN_STR_LITERA_ZNACHENIE = "AAA"
     Exit Function
    End If
    
  For STR_COLUMN = 3 To 1 Step -1
    For STR_LITERA = 65 To 90
    If DCount("Code", "GoodsGroups", "Mid([code]," & STR_COLUMN & ",1) = '" & Chr(STR_LITERA) & "'") = 0 Then
        STR_NEW = DFirst("Code", "GoodsGroups", "Mid([code]," & STR_COLUMN & ",1) = '" & Chr(STR_LITERA - 1) & "'")
        STR_NEW = Mid(STR_NEW, 1, (STR_COLUMN - 1)) & Chr(STR_LITERA)
        FUN_STR_LITERA_ZNACHENIE = STR_NEW
     Exit Function
    End If
    Next STR_LITERA
  Next STR_COLUMN

 '----------------------------------------------------------------------------
' Call ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Лог.txt", Now() & "функция: FUN_STR_LITERA_ZNACHENIE в модуле: 1_A_WH_MOD")
   On Error GoTo 0
   Exit Function

FUN_STR_LITERA_ZNACHENIE_Error:
    Call ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Ошибки программы.txt", " функция: FUN_STR_LITERA_ZNACHENIE в модуле: 1_A_WH_MOD" & vbTab & Nz(Err.Description))

End Function
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39456938
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

извини, я не готов признать эти две функции подобными.
в части учета нижней границы может быть предложен такой вариант

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Function next_code(pval As Variant) As Variant
 Const ci_A As Integer = 65
 Const ci_Z As Integer = 90

 Dim s3char As String * 3
 Dim i As Long, ichar As Integer, bshift As Boolean
 
 s3char = Mid("" & pval, 1, 3)
 
 For i = 3 To 1 Step -1
   ichar = Asc(Mid$(s3char, i, 1))
   Select Case ichar
     Case ci_A To ci_Z - 1
       Mid$(s3char, i, 1) = Chr(ichar + 1)
       bshift = False
     Case Else 
       Mid$(s3char, i, 1) = Chr(ci_A)
       bshift = True
   End Select
  
   If Not bshift Then
     Exit For
   End If
 Next
 next_code = s3char
End Function
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39456941
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyчас58,

извини, я не готов признать эти две функции подобными.
...


дело в том, что FUN_STR_LITERA_ZNACHENIE зависит от какого-то внешнего мира имени "GoodsGroups", то есть - не вляется формальным алгоритмом, а next_code - чистая функция.
По этому основанию у них нет шансов быть подобными.
...
Рейтинг: 0 / 0
Помогите составить алгоритм
    #39457057
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

Хорошо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите составить алгоритм
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]