Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 0
  • 1

Mam taki problem, że pobierając wartość pola z tabeli do formularza za pomocą ADODB.Recordset otrzymuję tylko 256 znaków (krótki tekst), choć właściwość pola jest ustawiona jako tekst długi. Czy pole w recordset może mieć wielkość odpowiadającą długiemu tekstowi?

Tomasz_Kasprzycki
  • Zapytał
  • @ Tomasz_Kasprzycki | 27.03.2018
    • 2
    • 4
    • 8

Odpowiedzi (2)

  • 0

Sprawdzone pod Access 2016 32bit - działa bez problemu.

Utworzyłem tabelę z polem typu długi tekst, utworzyłem niezwiązany formularz i wpisałem do niego:

Private Sub Form_Load()

    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Set cn = CurrentProject.Connection
    rs.Open "tbTestDlugiTekst", cn
    Me.DlugiTekst.Value = rs.Fields("DlugiTekst").Value

End Sub

Powoduje to bezproblemowe załadowanie tekstu do pola tekstowego na formularzu (1040 znaków).

Załączniki

  • accdb

    test długi tekst.accdb ( 480K )
  • Odpowiedział
  • @ | 24.10.2018
  • TRENER ALTKOM AKADEMII
  • 0

Problemem jest sql.

Jeśli w kwerendzie damy grupowanie w polu tekstowym, to wynikiem będzie krótki tekst. Jeśli zamienimy to (bo musimy grupować po jakimś innym parametrze, np.: ID klienta) na pierwszy/ostatni, to otrzymamy długi tekst.

Czyli w takim zapisie:

SELECT tbl_baza.NumerProjektu, tbl_baza.NumerKontroli, tbl_baza.OpisNieprawidlowosci
FROM tbl_baza
GROUP BY tbl_baza.NumerProjektu, tbl_baza.NumerKontroli, tbl_baza.OpisNieprawidlowosci;

Pole: tbl_baza.OpisNieprawidlowosci będzie krótkim tekstem.

Jeśli jednak zapiszemy zapytanie tak:

SELECT tbl_baza.NumerProjektu, tbl_baza.NumerKontroli, Last(tbl_baza.OpisNieprawidlowosci) AS OstatniOfOpisNieprawidlowosci
FROM tbl_baza
GROUP BY tbl_baza.NumerProjektu, tbl_baza.NumerKontroli;

To pole: tbl_baza.OpisNieprawidlowosci będzie miało oryginalny rozmiar.

Tomasz_Kasprzycki
  • Odpowiedział
  • @ Tomasz_Kasprzycki | 12.12.2018
    • 2
    • 4
    • 8