Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Просмотр сообщений

Сообщения - Samyrro054

#1
Ошибка сразу на Open, функция ОЧЕЕЕНЬ большая и сложная, это БД какой-то корпорации, она связана с большим кол-вом других больших функций. Но её суть одна - она собирает кучу данных из разных таблиц и в теле функции много раз написано select собранная инфа INTO _result; RETURN NEXT _result;
#2
Ошибка не в функции это точно. Есть программа которая успешно её использует, но у меня нет исходников этой проги, чтобы узнать, как она получает данные из запроса
#3
Здравствуйте, подскажите, как в VBA вызвать функцию PostgreSQL, возвращающую множество. Стандартным способ через запись в Recordest не получается, выдаёт ошибку: "Функция, возвращающая множество, вызвана в контексте, где ему нет места".

Private Sub CommandButton1_Click()
Dim MyConnect As String
Set ConnPGSQL = New ADODB.Connection
DoEvents
UPSQL = Trim(Auth.TextBox3.Text)
PPSQL = Trim(Auth.TextBox4.Text)
PGServer = Trim(Auth.TextBox1.Text)
pgDB = Trim(Auth.TextBox2.Text)
MyConnect = "Provider=MSDASQL.1;Password=" & PPSQL & ";Persist Security Info=True;User ID=" & UPSQL & ";Extended Properties='DRIVER={PostgreSQL ANSI};DATABASE=" & pgDB & ";SERVER=" & PGServer & ";PORT=5432;UID=" & UPSQL & ";PWD=" & PPSQL & ";SSLmode=disable;ReadOnly=1;Protocol=7.4;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=1;Ksqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;XaOpt=1;AB=10;';Initial Catalog=" & pgDB

If ConnPGSQL.State <> adStateOpen Then
   With ConnPGSQL
    .Mode = adModeRead
    .CursorLocation = adUseClient
    .Open MyConnect
    End With
End If

Dim RCSTemp As New ADODB.Recordset
Dim sQ As String
sQ = "SELECT find_all('380999999999')"
RCSTemp.Open sQ, ConnPGSQL, adOpenDynamic, adLockBatchOptimistic, adCmdText
TextBox1.Text = Trim(RCSTemp.Fields(0).Value)

End Sub

#4
Нашёл решение
Dim r As Word.Range
Set r = ActiveDocument.Range(1, ActiveDocument.Tables(1).Range.Start)
MsgBox r.Text


Dim d As Word.Document, i&, t$
Set d = ActiveDocument
For i = 1 To d.Tables.Count - 1
    t = t & d.Range(d.Tables(i).Range.End, d.Tables(i + 1).Range.Start)
Next
MsgBox t
#5
Здравствуйте, реально ли средствами VBA извлечь весь текст до первой таблицы и между остальными таблицами (но не после последней таблицы)?
#6
Здравствуйте! Существует таблица Word, в которой каждая новая строка не является новой ячейкой, а просто перенос строки (Enter-ом создавали новую строку).
Я пытаюсь извлечь все строки таблицы в ячейки Excel. Но поскольку этой не обычный перебор строк таблицы циклом, необходима помощь в создании макроса, который сможет выделить текст до переноса строки, записать его в ячейку Excel и т.д. в цикле каждую новую строку. Такое вообще реально сделать?
Вот код для подключения к документу Word:

Sub OpenWord()
    Dim objWrdApp As Object, objWrdDoc As Object, avFiles, i As Integer, tbl As Object
    avFiles = Application.GetOpenFilename _
                ("Word files(*.doc*),*.do*", 1, "Выберите таблицу", , False)
    If VarType(avFiles) = vbBoolean Then
        Exit Sub
    End If
        Set objWrdApp = CreateObject("Word.Application")
        objWrdApp.Visible = False
        Set objWrdDoc = objWrdApp.Documents.Open(avFiles)
        Set tbl = objWrdDoc.Tables(1)
        ActiveSheet.Cells(1, 1) = tbl.Cell(2, 1).Range.text       
        objWrdDoc.Close True
        objWrdApp.Quit
        Set objWrdDoc = Nothing: Set objWrdApp = Nothing
End Sub
Яндекс.Метрика Рейтинг@Mail.ru