Page 1 of 1

ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Tue May 27, 2014 11:54 pm
by icocoman
cosmetiic-v5test.xlsm
รบกวนสอบถามค่ะอาจารย์ :?: :?:

หนูสร้าง UserForm เพื่อคีย์ข้อมูลต่างๆลงใน sheet ที่ต้องการ จากนั้นหนูได้ทำการแมป XML แต่ข้อมูลแรกที่บันทึกมันไม่อยู่ในตารางที่ได้แแมป XML และทำให้การรันลำดับรวนค่ะ

จากนั้นหนูลองแก้ปัญหาโดยการใส่ลำดับ 0 ไว้ที่บรรทัดแรกของตาราง ผลที่ได้คือสามารถกรอกได้ตามปกติค่ะ

หนูอยากทราบวิธีที่ทำให้สามารถกรอกข้อมูลลงบนบรรทัดแรกได้โดยไม่ต้องใส 0 ค่ะ

ขอบพระคุณค่ะอาจารย์ :)

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 12:43 am
by bank9597
icocoman wrote:
cosmetiic-v5test.xlsm
รบกวนสอบถามค่ะอาจารย์ :?: :?:

หนูสร้าง UserForm เพื่อคีย์ข้อมูลต่างๆลงใน sheet ที่ต้องการ จากนั้นหนูได้ทำการแมป XML แต่ข้อมูลแรกที่บันทึกมันไม่อยู่ในตารางที่ได้แแมป XML และทำให้การรันลำดับรวนค่ะ

จากนั้นหนูลองแก้ปัญหาโดยการใส่ลำดับ 0 ไว้ที่บรรทัดแรกของตาราง ผลที่ได้คือสามารถกรอกได้ตามปกติค่ะ

หนูอยากทราบวิธีที่ทำให้สามารถกรอกข้อมูลลงบนบรรทัดแรกได้โดยไม่ต้องใส 0 ค่ะ

ขอบพระคุณค่ะอาจารย์ :)
ผมลองเปิดแล้ว ไม่สามารถเลือกค่าจาก combobox ได้ครับ
ลองตรวจสอบและอธิบายหลักการทำงานอีกครั้งครับ

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 12:52 am
by icocoman
เลือกได้ปกตินะค่ะ ยกเว้นช่อง CasNo ยังไม่ได้กรองข้อมูล

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 12:59 am
by bank9597
icocoman wrote:เลือกได้ปกตินะค่ะ ยกเว้นช่อง CasNo ยังไม่ได้กรองข้อมูล
:| แต่ผมคิดว่าไม่น่าจะเลือกรายการได้น่ะครับ ลองดูโค๊ดครับ

Code: Select all

Private Sub UserForm_Initialize()
'Dim c1 As Range
'Dim ws1 As Worksheet
'Set ws1 = Worksheets("Datalist")
'For Each c1 In ws1.Range("ulname")
'  With Me.ComboBox1
'    .AddItem c1.Value
'   .List(.ListCount - 1, 1) = c1.Offset(0, 1).Value
' End With
'Next c1


    'Range("A2").Select
'Do While Not IsEmpty(ActiveCell.Value)
 '  ComboBox1.AddItem ActiveCell.Value
  ' ActiveCell.Offset(1, 0).Select
'Loop
End Sub
คุณทำคอมเมนท์ไว้ทั้งหมดทุกบรรทัดครับ

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 1:09 am
by icocoman
ขั้นตอนแรกคุณต้องกดที่ปุ่ม"เพิ่ม"ก่อนแล้วจึงจะเลือกสารได้

ส่วนโค๊ดที่คุณให้มาใช้แล้วแต่ ขึ้น run-time error '70' ค่ะ

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 1:16 am
by bank9597
icocoman wrote:ขั้นตอนแรกคุณต้องกดที่ปุ่ม"เพิ่ม"ก่อนแล้วจึงจะเลือกสารได้

ส่วนโค๊ดที่คุณให้มาใช้แล้วแต่ ขึ้น run-time error '70' ค่ะ
:mrgreen: ผมยังไม่ได้ตอบครับ แค่ยกมาให้ดูว่าคุณยังไม่ใส่โค๊ดให้เรียบร้อย ผมจึงไม่สามารถเลืกค่าได้จาก combobox

ถ้าต้องการเอาค่าลงไปใน combobox ลองตามนี้ครับ

Code: Select all

Private Sub UserForm_Initialize()
        Me.ComboBox1.RowSource = "ulname"
        Me.ComboBox2.RowSource = "ulcas"
End Sub
เวลาเรากดเพิ่มสาร ต้องการให้ตัวเลขเริ่มรันจากเลขใด เช่น เริ่มจาก 1 เป็นต้น

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 1:45 am
by icocoman
รบกวนอีกรอบนะค่ะ

คีย์ข้อมูลและบันทึกได้แล้วค่ะแต่ข้อมูลไม่อยู่ในตาราง XmlMaps คืออยากให้ข้อมูลมันอยู่ในแถวที่2

http://image.ohozaa.com/view2/xCcUMxcetpdnz05x

ตัวอย่างตามไฟล์ที่แนบไปค่ะ sheetค่ะ^^

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 2:42 am
by bank9597
:D ผมปรับโค๊ดให้บางส่วน ให้กระทัดรัดขึ้น

ส่วนการบันทึกลงที่บรรทัดแรกยังทำไม่ได้เช่นกันครับ เนื่องจากเป็นฟังชั่น Table ไม่ใช่การบันทึกลงบนตารางธรรมดา
ต้องลองดูอีกหน่อยครับ หรือรอให้ท่านอื่นๆเข้ามาช่วยอีกครับ

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 8:39 am
by niwat2811

Code: Select all

Private Sub ButtonSave_Click()
Dim irow As Long
Dim iPart As Long
Dim ws As Worksheet
Sheet1.Activate
Set ws = Worksheets("¢éÍÁÙÅÊÙµÃ")
'find  first empty row in database
irow = ws.Cells(Rows.Count, 1) _
  .End(xlUp).Row
'iPart = Me.ComboBox1.ListIndex
'check for a part number

        'copy the data to the database
With ws
    .Cells(irow, 1).Value = Me.Label5.Caption
    .Cells(irow, 2).Value = Me.ComboBox1.Value
    .Cells(irow, 3).Value = Me.ComboBox2.Value
    .Cells(irow, 4).Value = Me.TextBox1.Value
End With
Range("A" & Rows.Count).End(xlUp).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=True

Me.ButtonName.Enabled = True
Me.ButtonSave.Enabled = False
Me.ButtonClose.Enabled = True
End Sub
ลองแบบนี้ดูว่าได้ตรงตามต้องการไหมครับ

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 10:13 am
by icocoman
ขอบคุณค่ะคุณ bank9597 และ niwat2811 ทำได้แล้วค่ะ

แต่ขอความกรุณาอีกครั้งนะค่ะ มี2 เรื่องดังนี้
1. เมื่อexportเป็นXML <CustomerInfo/> เกินมาค่ะ ซึ่งทำให้ดึงมาใช้ใน phpไม่ได้ค่ะ
แก้ยังไงได้บ้างค่ะ

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CISData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<CustomerInfo>
		<Idno>1</Idno>
		<chmbasenm>WALNUT EXTRACT</chmbasenm>
		<volume>0.1</volume>
	</CustomerInfo>
	<CustomerInfo>
		<Idno>2</Idno>
		<chmbasenm>(HEXAHYDRO-2H-AZEPIN-2-YLIDENE)BISPHOSPHONIC ACID, DISODIUM SALT</chmbasenm>
		<volume>10</volume>
	</CustomerInfo>
	<CustomerInfo/>
</CISData>
2. เมื่อเลือกข้อมูลชื่อสารใน ComboBox หนูต้องการให้ฟิลข้อมูล fdano,runnoและcasno ในsheet "Datalist" มาแสดงในsheet "ข้อมูลสูตร" ทำอย่างไรได้บ้างค่ะ

ขอบคุณค่ะ

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 11:04 am
by bank9597
:D ถ้าเป็น XML ไม่ทราบเช่นกันครับ ลองรอท่านอื่นมาช่วยดูครับ

http://www.mrexcel.com/articles/using-xml-in-excel.php

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 11:25 am
by icocoman
bank9597 wrote::D ถ้าเป็น XML ไม่ทราบเช่นกันครับ ลองรอท่านอื่นมาช่วยดูครับ

http://www.mrexcel.com/articles/using-xml-in-excel.php
ขอบคุณค่ะ พอทราบข้อ2 ที่ถามมั๊ยค่ะ :roll:

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 12:26 pm
by bank9597
icocoman wrote:
bank9597 wrote::D ถ้าเป็น XML ไม่ทราบเช่นกันครับ ลองรอท่านอื่นมาช่วยดูครับ

http://www.mrexcel.com/articles/using-xml-in-excel.php
ขอบคุณค่ะ พอทราบข้อ2 ที่ถามมั๊ยค่ะ :roll:
:| ลองดูตามนี้ครับ

Code: Select all

Private Sub ButtonSave_Click()
    Dim irow As Long
    Dim iPart As Long
    Dim ws As Worksheet
    Dim ws1 As Worksheet
    Worksheets(2).Activate
    Set ws = Worksheets("¢éÍÁÙÅÊÙµÃ")
    Set ws1 = Worksheets("Datalist")
       ' irow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
        irow = ws.Cells(Rows.Count, 1) _
          .End(xlUp).Row

    With ws
        With ws1
            With Application
                Dim casno As Range
                Dim ulname As Range
                .Cells(irow, 1).Value = Me.Label4.Caption
                .Cells(irow, 5).Value = Me.ComboBox1.Value
                .Cells(irow, 6).Value = Me.TextBox1.Value
                .Cells(irow, 2).Value = .Index(ws1.Range("C2:C188"), .Match(.Cells(irow, 5), ws1.Range("D2:D188"), 0))
                .Cells(irow, 3).Value = .Index(ws1.Range("B2:B188"), .Match(.Cells(irow, 5), ws1.Range("D2:D188"), 0))
                .Cells(irow, 4).Value = .Index(ws1.Range("A2:A188"), .Match(.Cells(irow, 5), ws1.Range("D2:D188"), 0))
            End With
        End With
        
    End With
    Range("F" & Rows.Count).End(xlUp).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=True

    
    Me.ButtonName.Enabled = True
    Me.ButtonSave.Enabled = False
    Me.ButtonClose.Enabled = True
End Sub

Re: ปัญหาเรื่องการกรอกข้อมูลบนUserFormเพื่อexpost เป็น XML

Posted: Wed May 28, 2014 1:06 pm
by icocoman
ได้แล้วๆขอบคุณbank9597มากๆค่ะ ^^