Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2012, 20:41   #1
prem1era
Пользователь
 
Аватар для prem1era
 
Регистрация: 16.11.2009
Сообщений: 33
По умолчанию Перевод кода в VBA

Кто может переведите код delphi в vba
Код:
procedure TForm1.Button5Click(Sender: TObject);
const
  small : String='абвгдеёжзийклмнопрстуфхцчшщъыьюя';
  big : String='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЮЯ';
var
  i,j,n,e : Integer;
  S,Str : String;
  fl : Boolean;

begin
  ADOQuery1.Active:= false;
  ADOQuery1.SQL.clear;
  ADOQuery1.SQL.Add('SELECT [Перечень документов].[Обозначение документа], Коррекция.[Кол л], [Перечень документов].[Наименование документа], Коррекция.Формат');
  ADOQuery1.SQL.Add('FROM [Перечень документов], Коррекция');
  ADOQuery1.SQL.Add('WHERE [Перечень документов].[Обозначение документа] = Коррекция.[Обозн] and [Перечень документов].[№ сл записки]="'+Edit4.Text+'"');
  ADOQuery1.Active:=true;
  if ADOQuery1.RecordCount=0 then
    messageDlg('Такой служебной записки нет. Повторите ввод еще раз', mtError, [mbOK], 0)
  else begin
    Edit1.Text:='Записка '+Edit4.Text+', имеет записей: '+IntToStr(ADOQuery1.RecordCount);
    Edit2.Text:=Path+'\'+Edit4.Text+'_СТД\';
    Memo1.Clear;
    Button1.Enabled:=true;
    Button2.Enabled:=true;
    for i:=1 to ADOQuery1.RecordCount do begin
      S:=''; fl:=false;
      for j:=1 to length(ADOQuery1.Fields.FieldByNumber(1).AsString) do begin
        if not(ADOQuery1.Fields.FieldByNumber(1).AsString[j] in ['0'..'9'])
        and not(ADOQuery1.Fields.FieldByNumber(1).AsString[j]='.')
        and (j>5) and (fl=false) and
        not(ADOQuery1.Fields.FieldByNumber(1).AsString[j-1]=' ') then begin
            S:=S+' ';
            fl:=true;
          end;
      S:=S+ADOQuery1.Fields.FieldByNumber(1).AsString[j];
      end;
      for j:=1 to length(S) do begin
       S[j]:=UpCase(S[j]);
       n:=pos(S[j],small);
       if n>0 then
         s[j]:=big[n];
      end;
      Str:='';
      Str:='$'+Str+S;
      if ADOQuery1.Fields.FieldByNumber(2).AsInteger>=2 then
        Str:=Str+'. л.1-'+ADOQuery1.Fields.FieldByNumber(2).AsString;
      Str:=Str+'. '+ADOQuery1.Fields.FieldByNumber(3).AsString+'. ';
      if (ADOQuery1.Fields.FieldByNumber(4).AsString='гмд')
      or (ADOQuery1.Fields.FieldByNumber(4).AsString='ГМД') then
       Str:=Str+'. А4'
      else
        Str:=Str+ADOQuery1.Fields.FieldByNumber(4).AsString;
      ADOQuery1.Next;
      Memo1.Lines.Add(Str);
    end;
  end;
end;
prem1era вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода из Delphi в VBA prem1era Microsoft Office Access 1 15.05.2012 12:39
Перевод кода с VBA на С++ Evgen.O Общие вопросы C/C++ 0 11.12.2011 17:12
Перевод кода под VBA naboman Microsoft Office Excel 2 01.06.2011 19:59
Перевод программного кода из VBA в VB (6.0) zxspec Помощь студентам 2 05.02.2009 00:39