Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Access2000...heelp :)
 
 автор: gloony   (16.05.2008 в 01:06)   личное сообщение
 
 

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

  Ответить  
 
 автор: ГлазастыйМышь   (16.05.2008 в 08:31)   личное сообщение
 
 

давай подробнее.
Таблицы уже созданы?
Как отфильтрует?
Как задана эквивалентность арабские-римские?
Какой отчет?

  Ответить  
 
 автор: gloony   (16.05.2008 в 13:34)   личное сообщение
 
 

вот пимер http://www.zone.ee/muzzzzy/ ......но там сравнивает по id и если чета изменить в таблице то сравнивать будет не правельно....запрос явно посложнее надо

  Ответить  
 
 автор: Анатолий (Киев)   (16.05.2008 в 11:13)   личное сообщение
 
 

От Гетса:

Function dhRoman(ByVal intValue As Integer) As String
    
    ' Convert a decimal number between 1 and 3999
    ' into a Roman number.
    
    ' From "VBA Developer's Handbook"
    ' by Ken Getz and Mike Gilbert
    ' Copyright 1997; Sybex, Inc. All rights reserved.
    
    ' In:
    '   intValue:
    '       A value between 1 and 3999 to be converted
    '       to roman numerals.
    ' Out:
    '   Return Value:
    '       The roman numeral representation of the integer
    ' Example:
    '   dhRoman(123) returns "CXXIII"
    
    Dim varDigits As Variant
    Dim intPos As Integer
    Dim intDigit As Integer
    Dim strTemp As String
    
    ' Build up the array of roman digits
    varDigits = Array("I", "V", "X", "L", "C", "D", "M")
    intPos = LBound(varDigits)
    strTemp = ""
    Do While intValue > 0
        intDigit = intValue Mod 10
        intValue = intValue \ 10
        Select Case intDigit
            Case 1
                strTemp = varDigits(intPos) & strTemp
            Case 2
                strTemp = varDigits(intPos) & _
                 varDigits(intPos) & strTemp
            Case 3
                strTemp = varDigits(intPos) & _
                 varDigits(intPos) & varDigits(intPos) & strTemp
            Case 4
                strTemp = varDigits(intPos) & _
                 varDigits(intPos + 1) & strTemp
            Case 5
                strTemp = varDigits(intPos + 1) & strTemp
            Case 6
                strTemp = varDigits(intPos + 1) & _
                 varDigits(intPos) & strTemp
            Case 7
                strTemp = varDigits(intPos + 1) & _
                 varDigits(intPos) & varDigits(intPos) & strTemp
            Case 8
                strTemp = varDigits(intPos + 1) & _
                 varDigits(intPos) & varDigits(intPos) & _
                 varDigits(intPos) & strTemp
            Case 9
                strTemp = varDigits(intPos) & _
                 varDigits(intPos + 2) & strTemp
        End Select
        intPos = intPos + 2
    Loop
    dhRoman = strTemp
End Function

  Ответить  
 
 автор: gloony   (16.05.2008 в 13:36)   личное сообщение
 
 

Я в accesse неочен и куда ето вкорячить не разберусь

  Ответить  
 
 автор: Анатолий (Киев)   (16.05.2008 в 19:41)   личное сообщение
 
 

Вам достаточно иметь одну таблицу с числовым полем и запрос:
SELECT [Поле] As Араб, dhRoman([Поле]) As Рим FROM [Таблица] WHERE условие отбора ...

Этот запрос возвращает значения полей в 2-х вариантах и годится отчета.

Функция должна находиться в общем модуле.

  Ответить  
 
 автор: gloony   (18.05.2008 в 23:29)   личное сообщение
 
 

http://www.zone.ee/muzzzzy
тут есть еще вариант но он в MDE и я не могу репорт сделать....может есть готовое решение проблемы?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList