Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


PM-format

Postades av 2004-06-18 13:15:28 - Kjell Andersson, i forum visual basic - allmänt, Tråden har 27 Kommentarer och lästs av 740 personer

Jag har en tabell i Access där en kolumn är av formatet PM. Jag vill göra en utskrift till Word på selekterade poster och använder då det "gamla hedliga" recordset. Hur får jag ett texten i PM-fältet till Word?
Övriga fält går med
Word.Selection.TypeText RS.Fields("ovrigt").Value


Svara

Sv: PM-format

Postades av 2004-06-18 15:26:02 - Åsa Holmgren

Prova:

Word.Selection = rst.Fields("ovrigt")
Word.Selection.Collapse wdCollapseEnd

det ger samma funktion som i TypeText. För snabbare och snyggare hantering kan du kolla VBA-hjälpen om användning av Range istället för Selection

/Åsa H


Svara

Sv: PM-format

Postades av 2004-06-19 10:38:41 - Kjell Andersson

Tack. Det hände inget när jag satte dit Collapse-raden. Skall undersöka Range.


Svara

Sv: PM-format

Postades av 2004-06-19 16:15:04 - Åsa Holmgren

Efter första raden är den infogade texten markerad. Om du då går vidare och infogar innehållet i nästa fält så ersätter det den första texten. Collapse gör att insättningspunkten hamnar efter det som infogades precis som vid TypeText.


Svara

Sv: PM-format

Postades av 2004-06-20 11:08:08 - Kjell Andersson

Detta funkar om kolumnerna är av textformat

If rsSokning.Fields("kungligt").Value <> Empty Then
Word.Selection.TypeText rsSokning.Fields("kungligt").Value
End If
Word.Selection.TypeText (vbCrLf)
Word.Selection.TypeText (vbCrLf)
If Not IsNull(rsSokning.Fields("ovrigt").Value) Then
Word.Selection.TypeText rsSokning.Fields("ovrigt").Value
End If
Word.Selection.TypeText (vbCrLf)
Word.Selection.TypeText (vbCrLf)
If Not IsNull(rsSokning.Fields("namn").Value) Then
Word.Selection.TypeText rsSokning.Fields("namn").Value
End If

men alltså inte när de är av PM-format

att sätta
Word.Selection = rst.Fields("ovrigt")
Word.Selection.Collapse wdCollapseEnd

ger mig ingen skillnad, det blir bara tomt där PM-fältets text skulle vara.


Svara

Sv: PM-format

Postades av 2004-06-20 23:13:04 - Johan Olsson

Hejsan

Det är inte så att du måste läsa ut datat i "chunks" ?
Ofta så vid blob-fält (Binary Large OBject)

Har ingen bra exempelkod, men sök på blob på tips o trix så hittar du litegrann

Har själv använt denna teknik, dock med SQL-Server.

/Johan


Svara

Sv: PM-format

Postades av 2004-06-21 08:52:27 - Johan Olsson

Hej igen

Sök på "getchunk" här på pellesoft så hittar du en hel del

/Johan


Svara

Sv: PM-format

Postades av 2004-06-21 11:16:10 - Kjell Andersson

Jag hittade ett ställe och prövade med olika varianter på


Word.Selection.TypeText rsSokning("ovrigt").GetChunk(500)

men det blir ingeting ändå. Använder jag GetChunk på rätt sätt?


Svara

Sv: PM-format

Postades av 2004-06-21 13:08:55 - Johan Olsson

Tror du bör lagra datat lokalt först.

Kör du samma stuk med "If Not IsNull" så tömmer den datat då.

Word.Selection.TypeText får då ingenting att jobba med

/Johan


Svara

Sv: PM-format

Postades av 2004-06-21 15:45:41 - Kjell Andersson

Jag förstår inte detta. Om jag använder If Not IsNull på textformaterat så funkar det, alltså TypeText får något att jibba med. Varför skulle det inte funka med PM-format och hur kolla man då om det fältet är tomt?

Vad menar du med att lagra datat lokalt?


Svara

Sv: PM-format

Postades av 2004-06-21 15:54:31 - Johan Olsson

Om du först kontrollerar datat med
If Not IsNull
så försvinner det.

Det första man gör är istället att spara undan det lokalt.

<code>
Dim strDatat as String

strDatat = rsSokning("ovrigt").GetChunk(500)

If Not IsNull(strDatat) Then
Word.Selection.TypeText strDatat
End If
</code>

Dessutom bör man kunna hämta storleken på datat så GetChunk kan få rätt storlek istället för att hårdkoda 500. Om så är fallet kan också jämförelsen göras Storlek > 0.

Måste sticka nu - hade testat själv innan jag postade detta inlägg annars...

/Johan


Svara

Sv: PM-format

Postades av 2004-06-21 17:18:16 - Kjell Andersson

När jag skriver

strDatat = rsSokning("ovrigt").GetChunk(500)
får jag felmeddelandet
En OLE-DB åtgärd i flera steg generrade fel. Kontrollera alla OLE-DB statusvärden som finns tillgängliga.

Sätter jag samma kod med fältet formaterat som text blir felmeddelandet
Åtgärden är inte tillåten i det här sammanhanget.

Skriver jag
strDatat = rsSokning.Fields("ovrigt").Value

får jag felmeddelandet
Invalid use of Null

fast det inte finns några tomma fält.

Det verkar svårt att få in datat i en lokal variabel.


Svara

Sv: PM-format

Postades av 2004-06-22 08:12:59 - Johan Olsson

Hmmm...

Nu har jag testkört med både DAO 3.51 och ADO 2.5 från VB6 mot en Access97 db.

Använde mig av "rsSokning.Fields("ovrigt").Value" och det verkar funka.
Får inte fel oavsett hur jag gör, varken med null-värden eller med långa strängar.
Observera att jag inte kört med Word utan kastat in datat i en sträng-variabel.

Noterade också att metoden GetChunk tar två parametrar i DAO (Offset, Length)
och en i ADO (Length)

Aha - om det första värdet är null får jag det där.

Testa :

<code>
Dim strDatat as String

strDatat = ""
...
strDatat = strDatat & rsSokning.Fields("ovrigt").Value
...
Word.Selection.TypeText strDatat
</code>

/Johan


Svara

Sv: PM-format

Postades av 2004-06-22 14:03:59 - Kjell Andersson

Nu blir det inget felmeddelande men det blir heller inget som skrivs i Word så länge det är PM-format.


Svara

Sv: PM-format

Postades av 2004-06-22 14:50:37 - Johan Olsson

Ok, men innehåller posten något då, tänkte på felmedd med null förut.

Hos mig blir det en tom sträng av "strDatat = strDatat & NULL"

Långskott :
Datat innehåller tecken som Word inte kan (vill) tolka t.ex. ASCII-kod noll.

/Johan


Svara

Sv: PM-format

Postades av 2004-06-22 19:13:29 - Kjell Andersson

Det står bara ett namn i fältet och som sagt så kommer namnet in i Worddokumentet om man ändar formatet till text.


Svara

Sv: PM-format

Postades av 2004-06-22 21:44:44 - Johan Olsson

Är det kanske så att det lagras som Unicode i Access ?
Word borde väl greja det iofs men...

Har du kollat PM-fältets innehåll (i debug eller msgbox eller så) ?

/J igen


Svara

Sv: PM-format

Postades av 2004-06-22 23:49:56 - Kjell Andersson

efter läget
strDatat = strDatat & rsSokning.Fields("ovrigt").Value

är strDatat tom


Svara

Sv: PM-format

Postades av 2004-06-22 23:53:53 - Johan Olsson

Märkligt !

Testade ju tidigare idag och det funkade klockrent, även på mycket data (typ 3kB).


Natti, natti


Svara

Sv: PM-format

Postades av 2004-06-23 07:43:02 - Johan Olsson

Morning

Testade precis med DAO 3.6 - får data hur fint som helst
<code>
If Not IsNull(rsSokning.Fields("ovrigt").Value) Then
strDatat = rsSokning.Fields("ovrigt").Value
End If
</code>

Kan du inte posta hela kodsnutten ?

/Johan


Svara

Sv: PM-format

Postades av 2004-06-23 09:45:18 - Kjell Andersson

OK här är hela koden. I command1 hämtas data från databasen och i Command2 skall det skrivas till Word

Option Explicit
Dim Word As Word.Application
Dim Doc As Word.Document
Dim strDatat As String
Dim op As Boolean
Dim varSokvag As String
Dim conn As New ADODB.Connection
Dim sql As String
Dim rsSokning As New ADODB.Recordset

Private Sub Command1_Click()
If op = True Then
conn.Close
End If
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\historia\data.mdb;uid=Admin" 'Öppnar en koppling mot databasen

op = True
sql = "select * from historia , person where historia.year =" & Combo1.Text & "And historia.Year = person.Year"
Set rsSokning = conn.Execute(sql)


Text1.Text = Text1.Text & rsSokning.Fields("kungligt").Value
Text2.Text = Text2.Text & rsSokning.Fields("ovrigt").Value
Text3.Text = Text3.Text & rsSokning.Fields("namn").Value

End Sub

Private Sub Command2_Click()
Set Word = CreateObject("Word.Application")
Set Doc = Word.Documents.Add
strDatat = ""
If rsSokning.Fields("kungligt").Value <> Empty Then
Word.Selection.TypeText ("Detta hände när " & rsSokning.Fields("namn").Value) & " föddes" 'Rubrik i rapporten
Word.Selection.TypeText (vbCrLf)
Word.Selection.TypeText (vbCrLf)
End If
strDatat = strDatat & rsSokning.Fields("kungligt").Value
Word.Selection.TypeText strDatat

Word.Selection.TypeText (vbCrLf)
Word.Selection.TypeText (vbCrLf)
If Not IsNull(rsSokning.Fields("ovrigt").Value) Then
Word.Selection.TypeText rsSokning.Fields("ovrigt").Value
End If
Word.Selection.TypeText (vbCrLf)
Word.Selection.TypeText (vbCrLf)
If Not IsNull(rsSokning.Fields("namn").Value) Then
Word.Selection.TypeText rsSokning.Fields("namn").Value
End If

Word.Visible = True
conn.Close
op = False
End Sub


Svara

Sv: PM-format

Postades av 2004-06-23 10:29:59 - Andreas Hillqvist

Varför har du två knappar?
<code>
Option Explicit

Private mNamn As String
Private mÖvrigt As String
Private mKungligt As String

Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Dim conn As ADODB.Connection
Dim strSQL As String

Set conn = New ADODB.Connection
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\historia\data.mdb;uid=Admin" 'Öppnar en koppling mot databasen

strSQL = "SELECT *" & vbCrLf & _
"FROM historia INNER JOIN person ON historia.Year = person.Year" & vbCrLf & _
"WHERE historia.year = " & Combo1.Text

Set rs = New ADODB.Recordset
rs.Open strSQL, conn

If rs.EOF Then
Text1.Text = vbNullString
Text2.Text = vbNullString
Text3.Text = vbNullString
Else
mKungligt = & rs("kungligt")
Text1.Text = mKungligt

mÖvrigt = "" & rs("ovrigt")
Text2.Text = mÖvrigt

mNamn = "" & rs("namn")
Text3.Text = mNamn
End If

rs.Close

conn.Close

End Sub

Private Sub Command2_Click()
Dim Word As Word.Application
Dim Doc As Word.Document

Set Word = CreateObject("Word.Application")
Set Doc = Word.Documents.Add()

If Len(mKungligt) Then
'**
'* Rubrik i rapporten
'**
Word.Selection.TypeText ("Detta hände när " & mNamn & " föddes" & vbCrLf & vbCrLf
End If

Word.Selection.TypeText mKungligt & vbCrLf & vbCrLf

If Len(mÖvrigt) > 0 Then
Word.Selection.TypeText mÖvrigt & vbCrLf & vbCrLf
End If

If Len(mNamn) > 0 Then
Word.Selection.TypeText mNamn
End If

Word.Visible = True
End Sub

</code>


Svara

Sv: PM-format

Postades av 2004-06-23 10:59:57 - Johan Olsson

Tjena igen

Du kör ADO, enligt min mening inte "det gamla hederliga sättet".
Mina testkörningar med DAO har varit ganska värdelösa

Vilken version av ADO kör du ?

/Johan


Svara

Sv: PM-format

Postades av 2004-06-23 11:02:35 - Kjell Andersson

Jag har två knappar för att jag vill söka först och sedan välja om jag vill skriva ut. Det skall bli så man skall kunna göra fler sökningar och sedan skriva ut allt. Jag vill få det att funka först innan jag fixar med utseendet. Jag skall testa din kod och återkommer. Hoppas den här tråden kan få ett slut nu.


Svara

Sv: PM-format

Postades av 2004-06-23 11:08:34 - Kjell Andersson

Jag menar med "gamla hedeliga sättet" att jag använder recordset. Numera skall det ju vara ADO.NET med dataadaper och dataset. Men skall man distribuera ett program så går det åt Net framework på 20 Mb utöver programmet om man gör det i VB.Net
Därför fortsätter jag med "det gamla hederliga recordset"
Hur får man reda på vilken verson man kör?


Svara

Sv: PM-format

Postades av 2004-06-23 11:28:35 - Kjell Andersson

Inte för att jag förstår varför men NU FUNKAR DET!!
Tack snälla Andreas och XAdjo


Svara

Sv: PM-format

Postades av 2004-06-23 11:30:44 - Johan Olsson

Hej igen

Ta bort raderna
<code>
Text2.Text =....

If Not Isnull(rsSokning.Fields("ovrigt").Value)
End If
</code>


och ändra till

<code>
strDatat = "" & rsSokning.Fields("ovrigt").Value
Word.Selection.TypeText strDatat
</code>

så funkar det

/Johan


Svara

Sv: PM-format

Postades av 2004-06-23 23:20:16 - Kjell Andersson

Se där ja. Tack Xadjo för att du tog dig tid.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 623
27 953
271 709
777
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next